Flask框架
- Flask 是一个基于python并且依赖于Jinja2模板引擎和 Werkzeug WSGI 服务的一个微型框架
- Flask中包含一个轻量级的web服务器主要用于在开发阶段测试使用
- WSGI:Web Server Gateway interface(Web服务网关借口)
安装Flask
-
查看已安装的Flask 及其版本
在python的交互模式中查看:
import flask:检测有没有安装flask
flask.__version__
:查看版本 -
安装Flask
sudo pip3 install flask
pip3 download flask -- 只下载,不安装 -
Flask 初始化
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '' if __name__ == '__main__': app.run(debug=True,port=5555,host='0.0.0.0')
-
什么是路由
客户端发送请求给服务器,服务器需要将请求发送给Flask程序实例
程序实例需要知道每个url请求对应的处理代码是谁,所以程序中必须有一个url 请求地址到python运行函数的一个映射,处理url和函数之间的关系的程序就是‘路由’。
-
路由的体现
在flask中,路由是通过@app.route('/')装饰器来表示的
根路由 http://127.0.0.1:5000
@app.route('/manager/admin/login')
def login():
return 'xxx'
带参数的路由
路由中可以携带参数来表示要传递到视图中的数据
http://localhost:5000/show/laowang
http://localhost:5000/show/wangwc
- 基本带参的路由
@app.route('/show/<name>')
def show1(name):
name: 表示的就是地址栏上传递的数据
pass
- 指定参数类型的路由
允许在声明路由时指定参数类型
避免了在程序中再转换
@app.route('/show/<name>/<int:age>')
def show(name,age):
name: 字符串
age: 整型
Flask中所支持的类型转换器:
类型转换器 | 作用 |
---|---|
缺省 | 字符串,不能有斜杠 |
int | 整型 |
float | 浮点型 |
path | 字符串,可以有斜杠('/') |
3.为多个url访问地址匹配同一个视图函数
@app.route('/地址1')
@app.route('/地址2')
def index():
pass
-
路由中设置http请求方法
在Flask中默认只能接收get请求,无法接受post请求
在Flasl中允许设定可以接收的请求方式,如果请求方式不匹配的话,会响应回405(Method Not Allowed)
@app.route('/xx',methods=['GET', 'POST'])
def xxx():
该函数既能够接收post请求,也能接收get请求
URL的反向解析
正向解析: 程序自动解析,根据@app.route()中的访问路径,来匹配处理函数
反向解析: 通过视图处理函数的名称自动生成对应的访问路径
在Flask中要实现反向解析:
url_for(funName, args)
funName: 要生成地址的函数名
args: 该地址中需要的参数
模板--Templates
-
什么是模板
模板,在Flask中就是允许响应给用户看的网页
在模板中,允许嵌入动态的内容
模板最终也会被解析成字符串再响应给客户端,这一过程称为'渲染'
Flask中,模板是依赖于Jinja2的模板系统
http://jinja.pocoo.org/ -
模板的设置
默认情况下,Flask会在程序目录中搜索一个 templates 的目录作为模板的存放目录 -
模板的渲染
作用:在视图中,将模板文件(xx.html)渲染成字符串之后,再响应给浏览器
语法:
fromflask import render_template
render_template('xx.html')
参数: 要渲染的模板
返回值:该模板中的字符串内容传递变量到模板中
render_template('xx.html',变量=值,变量=值,...)
在模板中获取变量的值
{{变量名}}
网友评论