如何通過(guò)Flask的request對(duì)象獲取url
通過(guò)Flask的request對(duì)象獲取url
flask開發(fā)過(guò)程中,有時(shí)候需要獲取當(dāng)前請(qǐng)求url的相關(guān)數(shù)據(jù),那么可以用以下方式獲取url??!
flask測(cè)試請(qǐng)求地址:http://127.0.0.1:5000/main/index?page=10
實(shí)例如下:
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對(duì)象、response對(duì)象、session對(duì)象
request對(duì)象
- 作用:獲取用戶提供的信息
- 語(yǔ)法:是實(shí)現(xiàn)了ServletRequest接口類的一個(gè)實(shí)例
使用表單向服務(wù)器的某個(gè)JSP頁(yè)面提交信息
常用方法:
- 設(shè)置編碼方式:例如(用來(lái)防止?jié)h字亂碼)
request.setCharacterEncoding(“gb2312”);
同效果:
String str = request.getParameter(“message”); byte[] b = str.getBytes(“ISO-8859-1”); Str = new String(b);
getProtocol()
:獲取提交信息使用的協(xié)議getServletPath()
:獲取請(qǐng)求的JSP頁(yè)面文件的目錄getContextPath()
:獲取請(qǐng)求的當(dāng)前的web服務(wù)目錄getContentLength()
:獲取提交信息的長(zhǎng)度getMethod()
:獲取提交信息的方法,例如:post、getgetHeader(s : String)
:獲取http頭文件中由參數(shù)s指定的頭名字的值。
s可以為:accept,accept-language,content-type,accept-encoding,user-agent,host,content-length,connection,cookie
getHeaderNames()
:獲取頭名字的枚舉類型getHeaders(s : String)
:獲取頭文件中指定頭名字的全部值的一個(gè)枚舉getRemoteAdr()
:獲取用戶的IP地址getRemoteHost()
:獲取用戶的用戶機(jī)名getServletPort()
:獲取服務(wù)器端號(hào)GetParameterNames()
:獲取提交信息中name參數(shù)值的一個(gè)枚舉
response對(duì)象
作用:對(duì)用戶的請(qǐng)求作出動(dòng)態(tài)響應(yīng),向用戶端發(fā)送數(shù)據(jù)
例如 :page指令為contentType指定一個(gè)值來(lái)決定響應(yīng)MIME類型。
若想要?jiǎng)討B(tài)的改變這個(gè)值可以用:
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等
請(qǐng)求和響應(yīng)都包含一些方法頭
使用:
response.addHeader(head : String, value : String); 或 response.setHeader(head : String, value : String);
動(dòng)態(tài)的添加新的響應(yīng)和頭的值
例如:
response.setHeader(“Reflesh”, “5”);
表示每5秒刷新一次頁(yè)面response重定向
- 語(yǔ)法:response.setRedirect(url : URL); response狀態(tài)行
- 語(yǔ)法:response.setStatus(n : int);
session對(duì)象
說(shuō)明:由Tomcat負(fù)責(zé)創(chuàng)建對(duì)象,用于存儲(chǔ)用戶訪問(wèn)服務(wù)器頁(yè)面期間提交的各種信息。每個(gè)對(duì)象都會(huì)被分配一個(gè)String類型的ID號(hào)(可以使用session.getId();獲?。娣旁贑ookie中,同一個(gè)用戶在不同的文本服務(wù)目錄中session互不相同。
實(shí)現(xiàn)session對(duì)象的唯一性:一般的用戶端支持了Cookie,就已經(jīng)實(shí)現(xiàn)了對(duì)象的唯一性。
如果沒(méi)有支持,那就可以通過(guò)重寫URL來(lái)實(shí)現(xiàn)session對(duì)象的唯一性。調(diào)用encodeURL(id : String)或encodeRedirectURL(id : String)方法,向新的URL中添加參數(shù),將session對(duì)象的id傳遞過(guò)去。
setAttribute(key : String, obj : Object)
: void 存儲(chǔ)對(duì)象,添加索引getAttribute(key : String)
: Object 使用索引,獲取對(duì)象getAttributeNmaes()
: Enumeration 產(chǎn)生一個(gè)枚舉對(duì)象,可以使用nextElems() 遍歷session 中的各個(gè)對(duì)象對(duì)應(yīng)的關(guān)鍵字removeAttribute(key : String)
: void 移除關(guān)鍵字對(duì)應(yīng)的對(duì)象getCreationTime()
: long 獲取session創(chuàng)建的時(shí)間(毫秒)getLastAccessedTime()
: long session最后一次被/操作的時(shí)間(毫秒)getMaxInactiveInterval()
: int 獲取最長(zhǎng)發(fā)呆時(shí)間(秒)setMaxInactiveInterval(interval : int)
設(shè)置最長(zhǎng)的發(fā)呆時(shí)間(秒)isNew()
: boolean 判斷session是否是最新創(chuàng)建的invalidate()
: void 使session無(wú)效
session的生存周期:
1.調(diào)用invalidate()方法,使session無(wú)效
2.達(dá)到設(shè)置的最長(zhǎng)發(fā)呆時(shí)間
3.關(guān)閉服務(wù)器
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS6.5設(shè)置Django開發(fā)環(huán)境
這篇文章主要為大家詳細(xì)介紹了CentOS6.5設(shè)置Django開發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Python函數(shù)元數(shù)據(jù)實(shí)現(xiàn)為一個(gè)參數(shù)指定多個(gè)類型
這篇文章主要介紹了Python函數(shù)元數(shù)據(jù)實(shí)現(xiàn)為一個(gè)參數(shù)指定多個(gè)類型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02numpy求解線性代數(shù)相關(guān)問(wèn)題
本文主要介紹了numpy求解線性代數(shù)相關(guān)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01pytorch中retain_graph==True的作用說(shuō)明
這篇文章主要介紹了pytorch中retain_graph==True的作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02利用Python來(lái)實(shí)現(xiàn)阿姆斯特朗數(shù)的檢查實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Python來(lái)實(shí)現(xiàn)阿姆斯特朗數(shù)的檢查的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03