此教程内容涉及内容很浅,仅为快速上手Flask提供关键注意要点
项目配置(针对Pycharm)
开启debug 热更新模式
edit configurations > FLASK_DEBUG = on
修改flask项目运行的host
edit configurations > Additional options = –host=0.0.0.0
修改flask项目运行的port
edit configurations > Additional options = –host=0.0.0.0 –port=8060
关于flask:debug模式的开启
- 方式一
1 | app.run(debug=True) |
- 方式二
- 配置系统环境变量为flask开发模式
- 配置系统换环境变量,打开flask调试模式
1 | import os |
URL与视图的映射
url的组成
url一般由三部分组成:
- 协议
- 如http(80)/https(443)
- 访问域名时,下面两种方式的含义相同:
127.0.0.1:80
- ip/域名
- 路由
初始化文件
1 | from flask import Flask, request, render_template |
路由映射配置
1 | # 路由配置 |
在访问装饰器配置的路由时,会执行下方的函数,函数返回值就是渲染内容
template
flask的template引入是通过Jinjia模板引擎的
仅需要在flask项目下的 /templates 文件夹中加入对应html模板,
然后在路由映射函数的返回值中使用flask.render_template(‘指定模板.html’)
route+template实例演示
路由传参
定义时使用 <> 包裹变量名称,
在映射函数的参数中加入对应变量名称,
在映射函数被调用时,传入变量值,参数会通过url传入
1 |
|
<参数类型:参数名称>
1 |
|
通过 /path?key1=value1?key2=value2 的格式传递的参数都存储在 request.args 中
request 需要从 flask 内引入
1 |
|
模板
需要从flask中引入render_template方法
1 | <!--template/index.html--> |
1 |
|
render_template(url[,**args])
1 | <h1>{{title}}</h1> |
1 |
|
1 | <body> |
1 | # 类定义 |
jinjia语法
1 | <h1>{{ 变量名|指定过滤器 }}</h1> |
jinjia提供了如下这些过滤器:

自定义过滤器需要用到add_template_filter方法
1 | # filter_fun 过滤器方法,入参为被过滤的值,返回过滤后值 |
下面提供的是一个对datetime类型数据进行格式化的自定义过滤器:
1 | <body> |
1 | # 1 定义过滤器 |
jinjia模板中提供两种基本的流程控制语句:
- if-else
1 | {% if exp_A %} |
- for-in
1 | {% for i in arr %} |
用法类似于slot插槽
父模块里加入命名插槽:
1 | {% block 插槽名 %}{% endblock %} |
子模块中使用插槽名定位插槽插入
1 | {% extends '父模块.html' %} |
需要用到url_for方法
jinjia模板通过url_for获取静态文件的默认地址在template同级目录下的static文件夹中
有如下目录结构:
- static
- css
- index.css
- img
- toby_dog.jpg
- js
- main.js
- templates
- static.html
url_for方法的作用是:根据视图函数的名称生成url
1 | # "static"表示路径static |
1 | <html lang="en"> |