flask中模板的继承,请求和响应,配置修改
一、模板
1.静态文件地址的反向解析
url_for('static',filename='<file_path>')
ex:
url_for('static',filename='images/b041.jpg')
结果: /static/images/b041.jpg
2.模板的继承
(1)什么是模板的继承
模板的继承类似于类的继承,如果一个模板中出现的内容来自于另一个模板的话,那么就可以使用继承的方式来简化开发
(2)语法
1.父模板
需要定义出哪些东西在子模板中是可以被重写的
{% block 块名 %}
父模板中正常显示的内容
{% endblock %}
block:
1.在父模板中是可以正常显示的,没有任何影响
2.在字模板中是可以被重写的
2.子模板
1.需要指定继承自哪个父模板
{% extends '父模板名称' %}
2.重写父模板中对应的内容
{% block 块名 %}
此处编写的内容会覆盖掉父模板中同名block的内容
允许通过 {{super()}} 来调用父模板中的内容
{% endblock %}
二、修改配置
1、构建Flask 应用时允许指定的配置信息
app=Flask(
__name__,
template_folder='muban',
static_url_path='/static',
static_folder='/statatic')
template_folder : 指定存放模板的文件夹名称
static_url_path : 访问静态资源的路径
http://localhost:5000/static/xxx 查找静态资源文件
static_folder : 指定存放静态文件的目录名称
在项目的根目录中 ,有一个名为 static的目录用于存放静态文件
2、启动程序的运行配置
app.run(
debug = True,
port = 5555,
host = ‘0.0.0.0’
)
host : 指定访问地址,0.0.0.0 表示局域网内的任何机器都可以访问网站
三、请求(request) 和 响应(response)
1.HTTP协议
Request Headers - 请求消息头
Response Headers - 响应消息头
2.请求对象 - request
request - 请求对象,封装了所有与请求相关的信息。如:请求数据,请求消息头,请求路径,... ...
在Flask中,要使用 request 的话,必须先导入
from flask import request
1.request的常用成员
1.scheme : 获取请求方案(协议)
2.method : 获取本期请求的请求方式(重点)
3.args : 获取使用get请求方式提交的数据
4.form : 获取使用post请求方式提交的数据
5.cookies : 获取 cookies 的相关信息
6.headers : 获取 请求消息头 的相关信息
7.files : 获取上传的文件
8.path : 获取请求的url地址(进入到主机后的请求资源地址,不包含请求参数)
9.full_path : 获取请求的url地址(进入到主机后的请求资源地址,包含请求参数)
10.url : 获取完整的请求地址,从协议开始的地址
2.获取请求提交的数据
1.get 请求方式
1.表单允许实现get请求
<form action="" method="get">
姓名:<input name="uname">
</form>
2.在请求地址后拼请求提交的参数
http://localhost:5000/06-get?uname=xxx&upwd=xxx
获取 get 请求方式提交的数据 :
request.args 封装的是get请求的数据
2.post 请求方式
post请求只有在表单中才能够被触发
<form method="post">
获取 post 请求提交的数据 :
request.form 封装的就是 post 请求的数据,类型为字典
request.form['name'] : 获取 name 对应的值
request.form.get('name') : 获取 name 对应的值
request.form.getlist('name') : 获取 name 列表数据(如复选框,下拉列表)
3、响应(response)
1.什么是响应
响应就是由服务器端带给客户端的内容,对应着请求。
响应可以是普通的字符串,模板 或 重定向
return "普通字符串"
return render_template('xxx.html')
2.响应对象
响应对象:将响应的内容封装到一个对象中,可以完成更多的响应的行为(如:增加cookies,...)
在Flask中,使用 make_response() 构建响应对象
from flask import make_response
@app.route('/xxx')
def xxx():
resp = make_response('响应内容')
# 允许实现其他的响应行为
return resp
3.重定向
1.什么是重定向
由服务器端通知客户端重新向一个新的地址发送请求
2.语法
from flask import redirect
return redirect('重定向地址')
**resp = redirect('重定向地址')
#可以借助resp实现其他的响应行为
return resp