python Flask学习笔记(一)
来源:互联网 发布:双十一淘宝津贴怎么用 编辑:程序博客网 时间:2024/06/04 21:14
app = Flask(__name__)
Flask的构造函数只有一个必须制定的参数,即程序主模块或包的名字。
Flask 用这个参数决定程序的根目录,以便能够找到相对于程序根目录的资源文件位置
render_template
render_template函数第一个参数是模板文件名,随后的都是关键字参数
@app.route('/user/<name>')def user(name): return render_template('user.html', name=name)
flask支持在路由中使用int,float和path类型,默认是字符串
@app.route('/user/<int:id>')def get_user(id): abort(404) return "no, %d" % id
Jinja2使能识别所有类型的变量,包括列表、字典和对象
<p>{{mydict['dict]}}</p><p>{{mylist[3]}}</p><p>{{mylist[myintvar]}}</p><p>{{myobj.somemethod()}}</p>
一个简单的Flask程序
from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return '<h1>Hello</h1>'if __name__ == '__main__': app.run(debug=True)
控制结构
在模板中使用条件控制语句
{% if user %} Hello, {{user}}{% else %} Hello,Stranger!{% endif %}
在模板中渲染一组元素
<ul> {% for comment in comments %} <li>{{comment}}</li> {% endfor %}</ul>
Flask上下文
Flask使用上下文临时把某些对象变为全局可访问。使用上下文让变量在一个线程中全局可访问,与此同时不会干扰其他线程。
Flask中有两种上下文,程序上下文和请求上下文
请求钩子
有时在处理请求之前或之后执行代码,可以使用钩子。Flask支持四种钩子
before_first_request 注册一个函数,在处理第一个请求之前运行
before_request 注册一个函数,在每次请求之前运行
after_request 注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行
teardown_request 注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行
例如,before_request处理程序可以从数据库中加载已登录的用户,并将其保存到g.user中,随后调用视图函数时,视图函数再使用g.user获取用户。
获取响应
from flask import make_responsedef index(): response = make_response('content') response.set_cookie('answer','42') return responsefrom flask import redirect@app.route('/')def index(): return redirect('http://www.baidu.com')from flask import abort@app.route('/')def get_user(id): abort(404)
注意:abort不会把控制权交还给调用它的函数,而是抛出异常把控制权交给Web服务器。
Flask扩展
使用Flask-script支持命令行选项
Flask-script是一个Flask扩展,为Flask程序添加了一个命令行解析器。pip3 install flask-script
使用Flask-script
# from flask.ext.script import Managerfrom flask_script import Managerapp = Flask(__name__)manager = Manager(app)if __name__ == '__main__': manager.run()
这样,可以通过 python hello.py runserver
以调试模式启动web服务器,查看更多选项可以使用python hello.py runserver --help
本文参考《Flask Web开发-基于Python的Web应用开发实战》
- python Flask学习笔记(一)
- Flask学习笔记(一)
- Python Flask 学习笔记
- Flask python 微框架学习(一)
- flask学习笔记(一安装配置)
- Flask Web 开发学习笔记(一)
- Flask学习(一)
- Python Flask教程(一)
- python之Flask(一)
- 2016May Python学习笔记(MySQL&flask)
- python Flask学习笔记(二)-集成bootstrap
- python flask学习笔记(四)-数据库操作
- python flask 学习笔记1 简单入门
- python学习笔记:ipython,scipy,pandas,flask
- JS Python Flask 处理json 学习笔记
- flask学习笔记之python代码模式
- Python Flask框架连接Mysql 学习笔记
- flask 学习 笔记,day01(基于python 2)
- String对象解析
- OSG中LabelControl中文显示
- [课堂笔记]小白菜鸟重装系统
- android Framework层添加资源方式
- 从零开始学写HTTP服务器(四)IO复用
- python Flask学习笔记(一)
- PAT A1063
- redis分布式锁的实现及问题分析
- aChartEngine小结
- Perl知识点滴
- c::动态顺序表的简单实现
- pyqt4之sqlite数据库连接测试
- 小博老师解析Java核心技术 ——JSwing文本域和滚轴控件
- myeclipse10导入其他地方的项目时jsp报错的有效解决方法