8、flask-Redirect重定向
# 路由 + 视图函数 from flask import Blueprint, request, render_template, jsonify, Response, redirect, url_for # from models import * #蓝图 # 创建蓝图对象 # 第一个参数:蓝图的名字 # 第二个参数:蓝图的包名 blue = Blueprint('user', __name__,) @blue.route('/') # 路由 def index(): return 'user index' # 请求和响应 # Request 对象 导入from flask import request @blue.route('/request/', methods=['GET', 'POST']) def get_request(): pass # print(request) #重要属性 #get请求 打印请求的参数或属性 print(request.method) #请求方法 GET或POST http://127.0.0.1:5000/request/ # 请求参数 http://127.0.0.1:5000/request/?name=zhangsan&&name=lishi&age=18 # 输出一个类字典对象:ImmutableMultiDict([('name', 'zhangsan'), ('name', 'lishi'), ('age', '18')]) #ImmutableMultiDict:类字典对象、可以出现重复的key print(request.args) #参数取值 print(request.args.get('name')) print(request.args.getlist('name')) # print(request.args.get['name'], request.args['age']) #post请求 print(request.form) #打印post请求过来的参数 print(request.form.get('name')) #取值 #cookie print(request.cookies) # 打印cookie #不常用 #获取请求的路径 #请求:http://127.0.0.1:5000/request/?name=zhangsan&&name=lishi&age=18 print(request.path) # /request/ print(request.url) # http://127.0.0.1:5000/request/?name=zhangsan&&name=lishi&age=18 print(request.full_path) # /request/?name=zhangsan&&name=lishi&age=18 print(request.base_url) # http://127.0.0.1:5000/request/ print(request.host_url) # 127.0.0.1 print(request.remote_addr) # 127.0.0.1:5000,客户端的ip #请求头 print(request.headers) # 请求头 print(request.files) # 上传的文件 print(request.user_agent) # 用户代理、浏览器信息 return 'get_request' #response响应 @blue.route('/response/') def get_response(): pass #响应的几种方式 # 1. 返回字符串 # return 'response' # 2.模板渲染(前后端不分离) # return render_template('index.html', name='zhangsan', age=18) # # 3.返回json数据(前后端分离) # data = {'name': 'zhangsan', 'age': 18} # # return data # return jsonify(data) # 序列化、将字典转为字符串 # # 4. 自定义响应对象 html = render_template('index.html', name='zhangsan', age=18) print(html, type(html)) # res = make_response(html, 200) res = Response(html, 200) return res # 重定向 @blue.route('/redirect/') def get_redirect(): pass # 重定向的集中方式 # 1. 重定向到网站 # return redirect('https://www.baidu.com') # 2. 重定向到自身的路由 # return redirect('/resonpse/') # #3. url_for('蓝图名称.视图函数名称') -》反向解析 根据函数名找到路由 # # blue = Blueprint('user', __name__,) 这里user是蓝图的名称 # ret = url_for('user.get_response') # print(ret) #/response/ # return redirect(ret) #或 直接传入参数 ret2 = url_for('user.get_request', name='zhangsan', age=18) return redirect(ret2)
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/18288534
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步