静态文件¶
- 把静态文件放到应用当前文件路径下的
static
文件夹中 -
访问时使用
/static/filename
的形式访问文件 -
当然也可以使用send_static_file主动发送静态文件给前端
@app.route('/img', methods=['GET', 'POST'])
def img():
# GET请求
if request.method == 'GET':
# send_static_file可以自动判断静态文件的类型, 并设置content-type
return app.send_static_file('img_01.jpg')
模板文件渲染¶
- 将模板文件文件放到应用当前文件路径下的
templates
文件夹下(pycharm需要设置模板语言) - 使用
render_template
函数进行模板渲染,可选函数keyword
进行模板内容替换(jinja2语法)
自定义响应对象¶
- 主要设置响应头
- 响应头是dict类型,可以直接kv赋值
@app.route('/header')
def header():
# 视图函数可以返回str/bytes类型, 内部都会将其包装为Response响应对象
# return "header"
# 自定义响应对象
response = make_response('这是一个自定义响应对象')
response.headers['num']= 123 # 自定义了一个响应头, 返回给客户端
print(response.headers) # 打印一下这个响应对象中的响应头
return response
快速响应Json数据¶
- jsonify会将字典转为json字符串, 并且自动设置content-type为application/json
重定向¶
redirect
函数会对请求进行重定向url_for
: 一般配合redirect
使用,如果要重定向到应用的其他视图中, 可以得到视图的相对路径
@app.route('/red')
def Red():
# return redirect('https://www.baidu.com') # 重定向到百度
# url_for : 获取视图函数对应的URL 一般和redirect配合使用, 有利于URL重构
url = url_for('index') # 获得 index 视图的路径
print(url) # 打印重定向的url地址
return redirect(url)
- 注意!!!: 如果重定向的是一个动态url, 那就需要手动传入动态url需要的参数