修改配置
1.构建Flask 应用时允许指定的配置信息
app=Flask(
__name__,
template_folder='muban',
static_url_path='/s',
static_folder='/sta')
template_folder : 指定存放模板的文件夹名称
static_url_path : 访问静态资源的路径
http://localhost:5000/s/xxx 查找静态资源文件
static_folder : 指定存放静态文件的目录名称
在项目的根目录中 ,有一个名为 sta 的目录用于存放静态文件
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 列表数据(如复选框,下拉列表)
1.响应(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
文件上传
1.注意问题
表单中如果有文件上传的话,必须遵循以下两个要求
1.提交方式 method 必须为 post
2.表单的 enctype 属性的值 必须为 multipart/form-data
2.服务器端
1.通过 request.files 获取上传文件
f = request.files['文件框的name值']
2.通过 f.save(保存路径) 将文件保存至指定目录处
通过 f.filename 获取文件的名称
f.save('static/'+f.filename)