dacaoxin Blog

「无言」

falsk插件flask-sqlalchemy

使用flask编写web应用程序时,不可避免的会要使用数据据,特别是关系型数据库mysql。为了简化对数据库的操作,出现在对象关系映射ORM框架。 Flask-SQLAlchemy是基于SQLAlchemy实现的一个插件。 1. 安装 使用命令: $ pip install flask-sqlalchemy 安装。之后可以初始化flask-sqlalchemy 1 2 3 ...

python中import包时产生的循环依赖

使用python写一个稍微大一点的工程时,经常会遇到循环import,即cicular import的问题。这篇文章会以flask里遇到的一个问题为原型,介绍一下 cicular import产生的原因,以及python中使用import文件时,到底python在做什么。 1. 一个cicular import实例 之前遇到一个cicular import的问题,项目文件结构大概如下: ...

flask用户会话插件flask-login

使用flask做web应用开发时,用户登录以及会话管理一定是个必须的功能。 1. 使用session保持用户状态 由于http协议的无状态性,在flask里使用session实现请求间信息共享功能。代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @app.route('/login', methods=['POST', ...

flask国际化插件flask-babel

获取本文的示例代码,点击这里 1. 安装使用flask-babel flask插件flask-babel可以很方便的帮助我们实现国际化(i18n)。包括语言文字,时区,时间日期,数字,货币等。 使用pip安装flask-babel插件: $ pip install flask-babel 构建一个最简单的flask web应用程序: 1 2 3 4 5 6 7 8 9 1...

flask-appbuilder使用

1. flask-appbuilder环境 1.1 环境与依赖包 1 2 3 $ pipenv --python 3.7 $ pipenv shell $ pipenv install flask-appbuilder 安装flask-appbuilder包过程中,会同时安装一些别的包,比如flask, flask-babel等之类的包。 1.2 构建 在flask-app...

macos中优雅使用terminal

dacaoxin

1. 下载,安装iTerm2 iTerm2是一个非常强大的terminal软件,使用iTerm2代替macos自带的难用的erminal。点击此处下载并安装iTerm2。 1.1. 设置iTerm2配色方案 我比较喜欢Dracula配色主题,网址是Dracula。这个网站上有下载和设置方式。按步骤来就可以了。 1.2. 设置Monaco字体补丁 点击此处下载Monaco字体补丁,并...

python3中tuple比较

dacaoxin

今天在使用python的PriorityQueue时遇到一个关于tuple比较问题,搞了半天才找到真实原因,记录一下。先看例子: 1 2 3 4 5 6 7 class Node: def __init__(self, x): self.val = x a = (1, Node(10)) b = (1, Node(20)) ...

python上下文管理器与with

dacaoxin

1. 几个基本概念 只有实现了上下文协议的对象才可以使用with语句 对于实现了上下文协议的对象,我们称为上下文管理器 一个对象,如果实现了__enter()__和__exit()__方法,那这个对象就实现在上下文协议 上下文表达式就是能返回一个上下文管理器的表达式 2. 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18...

python上下文管理器与with

dacaoxin

1. 几个基本概念 只有实现了上下文协议的对象才可以使用with语句 对于实现了上下文协议的对象,我们称为上下文管理器 一个对象,如果实现了__enter()__和__exit()__方法,那这个对象就实现在上下文协议 上下文表达式就是能返回一个上下文管理器的表达式 2. 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18...

flask基础知识

dacaoxin

1. flask注册路由的两种方法 使用装饰器,如下代码所示 1 2 3 4 5 6 app = Flask(__name__) app.config.from_object('config') @app.route('/') def hello(): return 'hello flask!!!' 使用路由注册函数 ...

python的装饰器

dacaoxin

1. 函数装饰器 先看一下下面这段代码,它可以帮助我们更好的理解装饰器: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import time def decorator(func): def wrapper(): print('time = ', time.time()) func()...

关于json

dacaoxin

1. 基本概念 什么是JSON JSON是一种数据格式,是一种轻量级的数据交换格式, JSON是一种跨语言交换数据格式 什么是JSON字符串 符合JSON格式的字符串叫做JSON字符串 JSON对象 python中没有所谓的JSON对象 2. json模块 json.loads...

python正则表达式总结

dacaoxin

python中常用正则表达式总结: 1. 模式 \w : 匹配数字、字母、下划线中任意一个字符, 相当于 [a-zA-Z0-9_] \W : 匹配非数字、字母、下划线中的任意字符,相当于 [^a-zA-Z0-9_] \d : 匹配一个数字, 相当于 [0-9] \D : 匹配非数字,相当于 [^0-9] \s : 匹配任意空白字符, 相当于 [ \t\n\r\f\v] \S : 匹配非空...

python之collections模块(一)

dacaoxin

1. 关于tuple tuple的引用可以重复赋值,如下所示是合法的 1 2 3 4 5 name_tuple = ('zhangsan', 10) print(name_tuple) name_tuple = ('lisi', 20) print(name_tuple) 但是下面这样是不合法的: 1 2 name_tuple = ...

python编程技巧总结

dacaoxin

1. python编程技巧总结 交换操作 如果想要交换x, y的值,python中可以直接这样写: 1 x, y = y, x 善用enumerate()遍历list 写代码时不可避免的要同时用到列表的元素下标和元素值,大多数人的写法是: 1 2 3 a = ['a', 'b', 'c'] for i in range(len(a)): prin...