如何通过Flask的request对象获取url
作者:Thomas_Lean
通过Flask的request对象获取url
flask开发过程中,有时候需要获取当前请求url的相关数据,那么可以用以下方式获取url!!
flask测试请求地址:http://127.0.0.1:5000/main/index?page=10
实例如下:
from flask import request @main.route('/main/index', methods=['GET', 'POST']) @login_required def index(): host_url = request.host_url
request更多方法
- 1.request.path: /main/index
- 2.request.host: 127.0.0.1:5000
- 3.request.host_url: http://127.0.0.1:5000/
- 4.request.full_path: /main/index?page=10
- 5.request.script_root:
- 6.request.url: http://127.0.0.1:5000/main/index?page=10
- 7.request.base_url: http://127.0.0.1:5000/main/index
- 8.request.url_root: http://127.0.0.1:5000/
request对象、response对象、session对象
request对象
- 作用:获取用户提供的信息
- 语法:是实现了ServletRequest接口类的一个实例
使用表单向服务器的某个JSP页面提交信息
常用方法:
- 设置编码方式:例如(用来防止汉字乱码)
request.setCharacterEncoding(“gb2312”);
同效果:
String str = request.getParameter(“message”); byte[] b = str.getBytes(“ISO-8859-1”); Str = new String(b);
getProtocol()
:获取提交信息使用的协议getServletPath()
:获取请求的JSP页面文件的目录getContextPath()
:获取请求的当前的web服务目录getContentLength()
:获取提交信息的长度getMethod()
:获取提交信息的方法,例如:post、getgetHeader(s : String)
:获取http头文件中由参数s指定的头名字的值。
s可以为:accept,accept-language,content-type,accept-encoding,user-agent,host,content-length,connection,cookie
getHeaderNames()
:获取头名字的枚举类型getHeaders(s : String)
:获取头文件中指定头名字的全部值的一个枚举getRemoteAdr()
:获取用户的IP地址getRemoteHost()
:获取用户的用户机名getServletPort()
:获取服务器端号GetParameterNames()
:获取提交信息中name参数值的一个枚举
response对象
作用:对用户的请求作出动态响应,向用户端发送数据
例如 :page指令为contentType指定一个值来决定响应MIME类型。
若想要动态的改变这个值可以用:
response.setContentType(s : String);
s的取值可以是:text/jtml; text/plain; image/gif; image/x-xbitmap; image/jpeg; image/pjpeg; application/x-shockwave-flash;application/vnd.ms-powerpoint; application/vnd-ms-execel; application/msword等
请求和响应都包含一些方法头
使用:
response.addHeader(head : String, value : String); 或 response.setHeader(head : String, value : String);
动态的添加新的响应和头的值
例如:
response.setHeader(“Reflesh”, “5”);
表示每5秒刷新一次页面response重定向
- 语法:response.setRedirect(url : URL); response状态行
- 语法:response.setStatus(n : int);
session对象
说明:由Tomcat负责创建对象,用于存储用户访问服务器页面期间提交的各种信息。每个对象都会被分配一个String类型的ID号(可以使用session.getId();获取),存放在Cookie中,同一个用户在不同的文本服务目录中session互不相同。
实现session对象的唯一性:一般的用户端支持了Cookie,就已经实现了对象的唯一性。
如果没有支持,那就可以通过重写URL来实现session对象的唯一性。调用encodeURL(id : String)或encodeRedirectURL(id : String)方法,向新的URL中添加参数,将session对象的id传递过去。
setAttribute(key : String, obj : Object)
: void 存储对象,添加索引getAttribute(key : String)
: Object 使用索引,获取对象getAttributeNmaes()
: Enumeration 产生一个枚举对象,可以使用nextElems() 遍历session 中的各个对象对应的关键字removeAttribute(key : String)
: void 移除关键字对应的对象getCreationTime()
: long 获取session创建的时间(毫秒)getLastAccessedTime()
: long session最后一次被/操作的时间(毫秒)getMaxInactiveInterval()
: int 获取最长发呆时间(秒)setMaxInactiveInterval(interval : int)
设置最长的发呆时间(秒)isNew()
: boolean 判断session是否是最新创建的invalidate()
: void 使session无效
session的生存周期:
1.调用invalidate()方法,使session无效
2.达到设置的最长发呆时间
3.关闭服务器
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。