flask重定向&cookie

一、回顾

1. 路由地址和函数名可以不重复
2. return + 字符串内容,当前形式为了做简单测试,返回渲染后模板
3. 定义路由地址时候,尾部添加/,访问方式比较灵活,有/和无/都可以访问到
4. 传参写法
5. 一个视图函数可以有多个路由
6. 一个视图可以传递多个参数,使用分隔符/进行分隔或者使用参数_进行拼接
7. 路由地址参数默认类型为字符串
8. 可以通过float/string/int/path对类型进行限定
9. 参数限定格式<限定符:参数名称>

二、重定向 redirect

作用:

可以通过访问地址跳转到另一个地址(视图函数)

导入:

from flask import redirect,url_for

from flask import Flask,redirect,url_for

app = Flask(__name__)

@app.route("/")
def index():
   return "hello redirect"

@app.route("/args///")
def args(name,age):
   return "我叫:{} 我今年:{}岁了".format(name,age)

@app.route("/t_redirect/")
def t_redirect():
   # return redirect("/")
   # he requested URL was not found on the server. If you entered the URL manually 
   # please check your spelling and try again.
   # 带参数视图函数,如果不传递完整参数,则为404
   return redirect("/args/modeng/20/")

@app.route("/r_t_redirect/")
def r_t_redirect():
   # url for作用 根据视图函数反向解析路由地址
   return url_for("args",name="fs",age=18)

@app.route("/r_t_c_redirect//")
def r_t_c_redirect(arg):
   # url for作用 根据视图函数反向解析路由地址
   return redirect(url_for("args",name="fs",age=arg))
   
if __name__ == "__main__":
   app.run(debug=True)

三、abort终止

概述: 
如果视图函数处理中,出现异常错误,可以使用abort函数,立即终止视图函数

传参:
参数就是http标准状态吗,如404/500,返回状态码对应信息,如果传递为http不标准不存在状态码,则无实际意义

类似于python的raise

导入:

from flask import abort

from flask import Flask,abort,render_template

app = Flask(__name__)

@app.route("/")
def index():
   return "test abort use"

@app.route("/test_abort/")
def t_abort():
   print("up code")
   abort(404)     #抛出404
   print("down code")
   return "test abort"

# 人为处理系统自带一个信息
@app.errorhandler(404)
def diy_404_error(e):
   return render_template('page_not_fonnd.html')

if  __name__ == "__main__":
   app.run(debug = True)

四、请求request

作用:

获取请求所携带的数据

概述:

浏览器发送到服务器所有请求被flask接收后,创建出request对象,request对象用在视图对象中,获取请求数据

使用:

from flask import request

request请求对象属性
 1. url获取完整请求URL
 2. base_url,去掉参数url 
 3. host_url 返回带协议主机IP和端口号
 4. host 只返回主机和端口
 5. path 请求路由地址
 6. method 请求方法类型
 7. remote_addr 返回客户端ip
 8. args 获取get传参
 9. headers 存储请求头信息
 10. json 传递是json数据

五、构造response过程

from flask import Flask,make_response

app = Flask(__name__)

# 一个非常简单响应(携带状态码)
@app.route("/")
def index():
   return "index",404

@app.route("/make_response/")
def t_make_response():
   res = make_response("我是response构造响应",500)
   return res

if __name__ == "__main__":
   app.run(debug=True)

六、会话控制cookie和session

概述:

我们协议为http超文本传输协议,无状态一种协议,每一次请求都是新的请求,所以通过cookie和session作为连续会话请求状态的保持

chrome浏览器查看cookie一个方式

chrome://settings/cookies/detail?site=127.0.0.1

你可能感兴趣的:(flask重定向&cookie)