1.什么是Flask?
- Flask:轻量级框架依赖Jinjia2 模板引擎Werzeug WSGI web微型框架
- WSGI:Web Server GateWay InterFace(WEB 网关服务接口)
2. 安装Flask
- 导入查看是否安装
- import flask
- flask.version 查看版本
- 如果没装的话 安装Flask
- pip3 install flask
// 推介使用Pycharm
3.Demo1
from flask import Flask # 导入模块儿
# 构建Flask应用 以便接受用户请求
app = Flask(__name__)
# 装饰器:路由定义 匹配用户访问路径
@app.route('/')
def index(): # 视图函数(MVC Views) 必须返回一个字符串,表示响应给浏览器的内容
return 'This is my Flask demo'
@app.route('/Page')
def Page():
return 'This is Test Page'
# 借助Flask内部服务 启动默认Port = 5000 测试访问
if __name__ == '__main__':
app.run(debug=True)
4.Flask 路由(route)
- a
- a
- 带参路由
- 路由中可以携带参数来表示要传递视图中的数据
- http://show/chinese
- 1 基本带参路由
- @app.route(’/show/< name >’)
- def show(name)
- #name: 上下必须一致,表示地址栏传递过来的数据
- 2 多个参数路由
- @app.route(’/show/< name >/< age >’)
- def show(name,age)
- return ‘name:%sage:%s’%(name,age)
- 3 指定参数类型路由
- @app.route(’/show/< name >/< int:age >’)
- def show(name,age):
- return ‘name:%sage:%s’%(name,age)
- Flask 中类型转换器 在下面
- 4 多URL的路由匹配
- 允许多个URL匹配到同一个视图处理函数
- @app.route(‘地之1’)
- @app.route(‘地之2’)
- def index():
- 5 URL的反向解析
- 正向解析:程序自动解析,根据视图函数访问路径匹配处理函数
- 反向解析:通过视图函数名称以及参数 找到访问地址
- 语法:
- from flask import url_for
- url = url_for(funcName,args)
类型转换器 | 作用 |
---|
缺省 | 字符串,除了 / |
int: | 整数 |
float: | 浮点型 |
path: | 字符串,允许 / |
5.Demo2
from flask import Flask,url_for
# 构建Flask应用 以便接受用户请求
app = Flask(__name__)
# 装饰器:路由定义 匹配用户访问路径
@app.route('/')
def index(): # 视图函数(MVC Views) 必须返回一个字符串,表示响应给浏览器的内容
return 'This is my Flask demo'
@app.route('/Page')
def Page():
return 'This is Test Page'
# 带参数的路由
@app.route('/show/<name>')
def show(name):
return '<h1>传参:%s</h1>'%name
# 带多个参数路由
@app.route('/show/<name>/<int:age>')
def show_(name,age):
return '姓名:%s年龄:%s'%(name,age)
# URL反向解析
@app.route('/admin/user/html/uuu')
def admin():
return '超级长的访问路径'
@app.route('/url')
def url():
# 通过admin解析访问属性
uu = url_for('admin')
# 将路径构建a标记进行响应
return '<a href="%s">访问admin</a>'%uu
# 借助Flask内部服务 启动默认Port = 5000 测试访问
if __name__ == '__main__':
app.run(debug=True)
6.模板
- 什么是模板
- 在Flask终究是能够呈现给哟过户取看的网页结构
- 在模板中允许使用变量来表示动态数据
- 在模板中允许使用服务端代码
Flask是依赖于Jinja2的模板引擎
- 模板的设置
- 默认情况下,Flask会在项目工程目录中的一个templates 文件夹中搜索模板
- 模板的渲染
- 作用:在视图中,将模板文件先渲染字符串,再响应给客户端浏览器
- 函数:render_template(‘模板名称.html’)
- demo
@app.route('/') def index(): str = render_template('demo .html') return str