1.模板
- 静态地址的反向解析
- 语法:
url_for(‘static’,filename = ‘<file_path>’) - 示例:
<img src = ‘url_for(‘static’ ,filename = ‘img/a.jpg’)’>
- 语法:
- 模板的继承
- 什么是模板继承
模板继承大部分与另一个模板相似,使用模板继承简化开发 - 语法
- 父模板文件
需要定义出哪些内容在子模版中可以重写
{% block %}
定义父模板中正常显示的内容/在子模板中被重写的内容
{% endblock %} - 子模板文件
- 需要指定继承自那个模板
{% extends ‘父模板名称’ %} - 重写父模板中指定内容
{% block 块名 %}
此处的内容会覆盖掉父模板中的同名block的内容
{% enblock %}
- 需要指定继承自那个模板
- 父模板文件
- 什么是模板继承
2.修改配置
-
构建Flask应用时指定配置信息
app = Flask(__ name__,
template_folder=‘模板文件夹名称’,
static_url_path = ‘静态文件路径’,
static_folder = ‘静态资源的文件夹名称’) -
启动程序时的运行配置
app.run(
debug = True,
port = 5555, 项目访问端口
host = ‘0.0.0.0’ 项目访问地址
)
3.请求(request)和响应(response)
- HTTP 协议
- 作用:规范了数据如何打包以及传递的
- 两大核心:
- 请求消息
由客户端带给服务端的消息
三部分组成:
1. 请求起始行
GET / HTTP/1.1
2. 请求消息头
每个以key:value格式的都是消息头
3. 请求主体
只有post\put 请求方式才有请求主题 - 响应消息
由服务器带给客户端消息
三部分:- 响应起始行
HTTP/1.1 200 OK - 响应消息头
key:value 方式存在,服务器传递给浏览器的消息 - 相应主体
服务器端相应的数据
- 响应起始行
- 请求消息
- 请求对象 - request
-
什么是请求
请求对象中会封装所有与请求相关的信息 -
语法
from flask import request
request 中常用成员:
1. scheme : 获取请求协议
2. method : 获取本次请求方式
3. args : 获取GET请求的数据提交
4. form : 获取POST请求的数据提交
5. cookies:获取cookies相关数据
6. files :获取上传的文件
7. path:获取请求的资源地址
8. full_path:获取请求的资源的完整路径
9. url:获取完整的请求地址从协议初开始
10. headers:获取请求消息头信息 -
获取请求提交的数据
- get 请求方式
- get方式的场合
< from method=‘get’ action=‘xxx’>
姓名:< input type=‘submit’>< / form> - 通过地址栏访问的全是get请求
- < a href = ‘/01-test?参数名=值’ >参数</ a>
- windows.location.href = ‘/01-test’
get请求需要通过request.args 获取请求参数值
(允许按照字典的方式操作request.args)
- get方式的场合
- post 请求方式
- 场合:
< from method=‘post’> - 获取post请求数据
通过 request.from 获取post方式提交的数据
(可以按照字典的方式操作 request.from)
- 场合:
- get 请求方式
-
from flask import Flask,render_template,request
app = Flask(__name__)
@app.route('/01-parent')
def parent_views():
return render_template('01-parent.html')
@app.route('/01-child')
def chils_views():
return render_template('01-child.html')
# 03-request 响应路由
@app.route('/03-request')
def request_view():
scheme = request.scheme
method = request.method
args = request.args
form = request.form
cookies = request.cookies
files = request.files
path = request.path
full_path = request.full_path
url = request.url
headers = request.headers
if 'Referer' in request.headers:
referer = request.headers['Referer']
return render_template('03-request.html',params = locals())
#05-get 接收get请求提交的数据
@app.route('/05-get')
def get_views():
name = request.args['name']
age = request.args['age']
return '<h1>提交的数据name:%sage:%s</h1>'%(name,age)
#06-get 接收post提交的数据
@app.route('/06-post',methods=['GET','POST'])
def post_views():
if request.method == 'GET':
return render_template('06-post.html')
uname = request.form.get('uname')
upwd = request.form.get('upwd')
return '名字:%s密码:%s'%(uname,upwd)
if __name__ == '__main__':
app.run()