flask读书笔记

《《Flask Web开发实战:入门、进阶与原理解析》_李辉.pdf》 

中文文档: http://docs.jinkan.org/docs/flask/
英文文档: http://flask.pocoo.org/docs/0.11/
                                        http://www.pythondoc.com/

学习flask的一个很好的网站:http://www.pythondoc.com/flask-mega-tutorial/helloworld.html

flask的一个中文网站:http://flask123.sinaapp.com/category/flask-projects/   里面还介绍了好多基于flask的开源项目

flask sqlAlchemy:   http://www.pythondoc.com/flask-sqlalchemy/index.html

http://python.jobbole.com/84003/

https://dormousehole.readthedocs.io/en/latest/

https://flask-cn.readthedocs.io/en/latest/tutorial/

https://www.cnblogs.com/kendrick/p/6237286.html

=======================

 

 

 

self.paser = reqparse.RequestParser()
中文网站:http://docs.jinkan.org/docs/flask/
扩展:http://flask.pocoo.org/extensions/
====================

 

 通过url_map可以查看整个flask中的路由信息 :print(app.url_map)
当装饰器和请求方式完全相同时,那么执行的是第一个,如果装饰器相同但是请求方式不相同,那么它们将是独立的个体

@app.route("/hello")
def hello1():
return "hello 1"
@app.route("/hello")
def hello2():
return "hello 2"
真正运行的是第一个hello

常用的转换器有int/float/path,我们还可以继承BaseConverter 实现自己的转换器,
BaseConverter中两个常用的重载函数有to_python和to_url

1、Flask 支持在路由中使用 int、 float 和 path 类型。path 类型也是字符串,但不把斜线视作分隔符

2、在请求钩子函数和视图函数之间共享数据一般使用上下文全局变量 g。例如, before_request 处理程序可以从数据库中加载已登录用户,并将其保存到 g.user 中。随后调用视
图函数时,视图函数再使用 g.user 获取用户

3、Flask 提供的 render_template 函数把 Jinja2 模板引擎集成到了程序中

4、在当前版本的 hello.py 程序中调用 url_for('index') 得到的结果是 /。调用 url_for('index', _external=True) 返回的则是绝对地

址,在这个示例中是 http://localhost:5000/。

5、使用 url_for() 生成动态地址时,将动态部分作为关键字参数传入。例如, url_for

('user', name='john', _external=True) 的返回结果是 http://localhost:5000/user/john。

6、静态文件:url_for('static', filename='css/styles.css', _external=True)

7、使用重定向作为 POST 请求的响应,而不是使用常规响应。

8、ORM:程序使用的数据库 URL 必须保存到 Flask 配置对象的 SQLALCHEMY_DATABASE_URI 键中。配置对象中还有一个很有用的选项, 即 SQLALCHEMY_COMMIT_ON_TEARDOWN 键,将其设为 True

时,每次请求结束后都会自动提交数据库中的变动。

9、如果数据库表已经存在于数据库中,那么 db.create_all()不会重新创建或者更新这个表。

10、准备把对象写入数据库之前,先要将其添加到会话中;为了把对象写入数据库,我们要调用 commit() 方法提交会话;数据库会话能保证数据库的一致性,

如果你始终把相关改动放在会话中提交,就能避免因部分更新导致的数据库不一致性。

11、若要查看 SQLAlchemy 为查询生成的原生 SQL 查询语句,只需把 query 对象转换成字

符串:str(User.query.filter_by(role=user_role))

12、 flask db init ;   flask db migrate -m “add note timestamp”  ; flask db upgrade

======蓝本

13、在蓝本中定义的路由处于休眠状态, 直到蓝本注册到程序上后,路由才真正成为程序的一部分

14、在蓝本中编写错误处理程序稍有不同,如果使用 errorhandler 修饰器,那么只有蓝本中的

错误才能触发处理程序。要想注册程序全局的错误处理程序,必须使用 app_errorhandler

15、视图函数 index() 注册的端点名是 main.index,其 URL 使用 url_for('main.index') 获取。



posted on 2019-04-05 22:27  我和你并没有不同  阅读(246)  评论(0编辑  收藏  举报