
Flask Web学习笔记之Flask与HTTP
args,cookies,data,form,files,json,method,user_agent,get_json()等等flask routes查看路由@app.route('/hello',methods=['GET','POST'])
def hello():
return "<h1>Hello,Flask!</h1>"转换器 | 说明 |
|---|---|
string | 不包含斜线的字符串(默认值) |
int | 整型 |
float | 浮点数 |
path | 包含斜线的字符串,static路由的URL规则中的filename变量就是使用了这个转换器 |
any | 匹配一系列给定值中的一个元素 |
uuid | UUID字符串 |
<转换器:变量名>,例如:<int:year>@app.route('/hello/<int:year>')
def hello():
return '<p>hello,I am %d years old!</p>'%(year-2019)<any(value1,value2...):变量名>@app.route('/colors/<any(blue,white,red):color>')
def three_colors(color):
return '<p>You choose %s</p>'%color 钩子 | 说明 |
|---|---|
before_first_request | 注册一个函数,在处理第一个请求前运行 |
before_request | 注册一个函数,在处理每个请求前运行 |
after_request | 注册一个函数,如果没有未处理的异常抛出,会在每个请求结束后运行 |
teardown_request | 注册一个函数,即使有未处理的异常抛出,会在每个请求结束后运行。如果发送异常,会传入异常对象作为参数到注册的函数中 |
after_this_request | 在注册函数内注册一个函数,会在这个请求结束后运行 |
@app.before_request
def do_something():
pass #这里的代码会在每个请求处理前执行类型 | 状态码 | 原因短语 | 说明 |
|---|---|---|---|
成功 | 200 | OK | 请求被正常处理 |
201 | Created | 请求被处理,并创建了一个新资源 | |
204 | No Content | 请求处理成功,但无内容返回 | |
重定向 | 301 | Moved Permanently | 永久重定向 |
302 | Found | 临时性重定向 | |
304 | Not Modified | 请求的资源未被修改,重定向到缓存的资源 | |
客户端错误 | 400 | Bad Request | 请求无效,即请求报文中存在错误 |
401 | Unauthorized | 表示请求的资源需要获取授权信息,在浏览器中会弹出认证弹窗 | |
403 | Forbidden | 请求的资源被服务器拒绝访问 | |
404 | Not Found | 服务器上无法找到请求的资源或者URL无效 | |
服务器端错误 | 500 | Internet Server Error | 服务器内部发送错误 |
from flask import Flask,redirect
@app.route('/hello')
def hello():
return redirect('http://justlovesmile.top')from flask import Flask,redirect,url_for
@app.route('/hi')
def hi():
...
return redirect(url_for('hello'))
@app.route('/hello')
def hello():
...from flask import Flask,abort
@app.route('/404')
def not_found():
abort(404)Content-Type: text/html;charset=utf-8from flask import Flask
from flask import make_response
@app.route('/foo')
def foo():
response=make_response('Hello World')
response.mimetype='text/plain'
return responsetext/plaintext/html application/xmlapplication/jsondumps()和load()等方法,并且Flask提供了包装好的更方便的jsonify()函数
from falsk import Flask,make_response,json
@app.route('/foo')
def foo():
data={
'name':'justlovesmile',
'gender':'male'
}
response=make_response(json.dumps(data))
response.mimetype='application/json'
return response等价于
from flask import Flask,jsonify
@app.route('/foo')
def foo():
return jsonify({name='justlovesmile',gender='male'})@app.route('/foo')
def foo():
return jsonify({name='',gender=''}),500