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