中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

asp網(wǎng)站后臺安全退出購物網(wǎng)站

asp網(wǎng)站后臺安全退出,購物網(wǎng)站,企業(yè)年金怎么查詢個人賬戶余額,溫州網(wǎng)站建設公司電話文章目錄 Flask開發(fā)環(huán)境搭建保持Flask運行Debug調試 路由和視圖可變路由 請求和響應獲取請求信息Request屬性響應狀態(tài)碼常見狀態(tài)碼CookieSession 表單GET請求POST請求 Flask 在用戶使用瀏覽器訪問網(wǎng)頁的過程中,瀏覽器首先會發(fā)送一個請求到服務器,服務器…

文章目錄

  • Flask
  • 開發(fā)環(huán)境搭建
    • 保持Flask運行
    • Debug調試
  • 路由和視圖
    • 可變路由
  • 請求和響應
    • 獲取請求信息
    • Request屬性
    • 響應狀態(tài)碼
    • 常見狀態(tài)碼
    • Cookie
    • Session
  • 表單
    • GET請求
    • POST請求

Flask

在用戶使用瀏覽器訪問網(wǎng)頁的過程中,瀏覽器首先會發(fā)送一個請求到服務器,服務器接收到請求之后,會將請求轉交給Flask進行處理。Flask會對用戶所訪問的URL進行解析,然后找到相應的響應內(nèi)容,將其返回到瀏覽器。

開發(fā)環(huán)境搭建

參考文檔:【SH】Ubuntu Server 24搭建Web服務器訪問Python程序研發(fā)筆記

保持Flask運行

開啟Ubuntu服務器,切換到項目目錄,激活虛擬環(huán)境,運行app.py文件。如果開啟了debug=True參數(shù),只需要啟動一次,后續(xù)更改了app.py文件后會自動重啟,挺方便的,當然如果修改后運行失敗,重啟也會失敗的。😄

sh@sheephero:~$ cd dip_project/
sh@sheephero:~/dip_project$ source dipenv/bin/activate
(dipenv) sh@sheephero:~/dip_project$ python app.py

app.py文件:

from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return "<h1>Hello World!</h1>"  if __name__=='__main__':# 運行Flask應用,監(jiān)聽默認端口5000app.run(debug=True, host='0.0.0.0')

運行情況:

保持Flask運行

Debug調試

當Python程序運行出現(xiàn)出錯的時候,就會出現(xiàn)如下界面,非常方便開發(fā)者進行調試!
調試

Debug調試

路由和視圖

仔細觀察app.py 中的代碼,hello 函數(shù)被 @app.route("/") 裝飾器裝飾,該裝飾器用于定義路由,確定URL與Python函數(shù)之間的映射。而被裝飾的hello函數(shù)便是視圖函數(shù),用于返回用戶請求URL的響應內(nèi)容。

可變路由

裝飾器這部分,可以用<>定義一個可變參數(shù),同時在視圖函數(shù)()中添加這個參數(shù),便可以設置動態(tài)路由,動態(tài)響應。

from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return "<h1>Hello World!</h1>"@app.route("/user/<name>")
def user(name):return "<h1>Hello, {}!</h1>".format(name)if __name__=='__main__':# 運行Flask應用,監(jiān)聽默認端口5000app.run(debug=True, host='0.0.0.0')

動態(tài)路由
運行情況

請求和響應

HTTP的核心就是【請求】和【響應】,其性質為無狀態(tài)協(xié)議,對事務處理沒有記憶能力。這意味著每一次交互都是完全獨立的。

獲取請求信息

路由和視圖函數(shù)部分代碼:

@app.route("/info")
def info():# 從request對象中獲取用戶請求信息info_str = f"""用戶IP:{request.remote_addr} <br/>請求方式:{request.method} <br/>請求表單:{request.form} <br/>用戶瀏覽器:{request.user_agent} <br/>用戶Cookie:{request.cookies} <br/>"""return info_str

Request屬性

屬性名稱數(shù)據(jù)類型說明
methodstr請求的提交方式
pathstrURL中的訪問路徑
full_pathstrURL中的訪問路徑,包含數(shù)據(jù)
remote_addrstr瀏覽器的IP地址
urlstr請求的完整URL
base_urlstr請求的URL,不含數(shù)據(jù)
url_rootstr請求的根URL,不含路徑
user _ agentstr瀏覽器及操作系統(tǒng)信息
argsdict請求中提交表單的GET參數(shù)
formdict請求中提交表單的POST參數(shù)
filesdict請求提交所上傳的文件
cookiesdict瀏覽器Cookie數(shù)據(jù)

響應狀態(tài)碼

每次的HTTP交互中,都會響應狀態(tài)碼。通過瀏覽器的F12可以查看響應狀態(tài)碼。

路由和視圖函數(shù)部分代碼:

@app.route("/user/<name>")
def user(name):if name in ['世界','羊大俠','SheepHero']:return "<h3>Hello, {}!</h3>".format(name) # 正常響應默認200else:return f'用戶 {name} 不存在!', 404

運行情況

常見狀態(tài)碼

狀態(tài)碼信息說明
200OK一切正常
301Moved Permanently重定向
400Bad Request客戶端請求錯誤
403Forbidden無權限訪問
404Not Found找不到頁面
405Method Not Allowed客戶端使用了不支持的提交方法
500Internal Server Error服務器端出錯
502Bad Gateway代理與服務器之間訪問出錯

Cookie

HTTP每次的交互都是獨立的,無法存儲狀態(tài)數(shù)據(jù),Cookie就是為了解決這個問題。

Cookie的存儲容量有限,一般不會超過4KB。因此,Cookie只能存儲少量數(shù)據(jù),如用戶的一些偏好設置、臨時信息等。當用戶訪問需要記錄狀態(tài)數(shù)據(jù)的網(wǎng)頁時,服務器會在HTTP響應包頭部加入設置Cookie的指令,瀏覽器接收到響應包后,將Cookie存儲到本地,當用戶再次訪問頁面時,瀏覽器會將Cookie數(shù)據(jù)加入HTTP請求包頭部,從而使服務器獲取到狀態(tài)信息。

由于Cookie是存放在本地的,可以被查看及修改,安全性較低,所以一般不用來存儲敏感數(shù)據(jù)。

from flask import Flask, request, make_response
import timeapp = Flask(__name__)@app.route('/visit')
def visit():# 從Cookie獲取最后訪問時間last_visit_time = request.cookies.get('last_visit_time', '首次訪問')resp = make_response(f'最后訪問的時間:{last_visit_time}')# 獲取服務器當前時間并設置Cookielast_visit_time = time.strftime('%Y-%m-%d %H:%M:%S')# max_age用戶設置Cookie的有效期(秒)resp.set_cookie('last_visit_time', last_visit_time, max_age=86400)return respif __name__=='__main__':# 運行Flask應用,監(jiān)聽默認端口5000app.run(debug=True, host='0.0.0.0')

Cookie運行情況

同樣的,在瀏覽器里面按【F12】點擊Network,點擊Cookies就可以查看Cookies信息。
沒有設置Cookie過期時間的情況下,當用戶關閉瀏覽器(Chrome)時,Cookie將會被自動清除。

Cookie信息

Session

Session與Cookie的作用相似,都用于存儲狀態(tài)數(shù)據(jù)。不同的是,Session只能在服務器端進行管理,用戶在本地無法對其進行修改,因而安全性較高。Session一般用于存儲用戶登錄狀態(tài)等對安全性要求較高的信息。
為了保證數(shù)據(jù)的安全性,Session一般有以下兩種存儲方式。
(1). 使用Cookie記錄一個隨機生成的session_id,session_id用于記錄Session與用戶的映射關系,所有數(shù)據(jù)存儲于服務器端,用戶無法修改數(shù)據(jù)。
(2). 所有Session數(shù)據(jù)都在服務器端加密,然后存儲在瀏覽器的Cookie中,若用戶擁有加密算法及密鑰,則Session數(shù)據(jù)可以被用戶修改。?(Flask默認以這種方式存儲Session?)

from flask import Flask, session
import timeapp = Flask(__name__)# 在使用Session之前,需要初始化 SECRET_KEY
app.config['SECRET_KEY'] = 'SheepHero' # 自定義
@app.route('/sign_in')
def sign_in():# 設置Session持久性存儲數(shù)據(jù),關閉瀏覽器記錄還會保存在服務器中session.permanent = True# 從Session獲取最后的簽到時間及簽到次數(shù)sign_in_time = session.get('sign_in_time','首次訪問')sign_in_count = session.get('sign_in_count', 0)# 設置Session字典session['sign_in_time'] = time.strftime('%Y-%m-%d %H:%M:%S')session['sign_in_count'] = sign_in_count + 1ret_str = f'上次簽到時間:{sign_in_time} <br/> 這是第 {sign_in_count} 次簽到'return ret_strif __name__=='__main__':# 運行Flask應用,監(jiān)聽默認端口5000app.run(debug=True, host='0.0.0.0')

有了Session,便可以實現(xiàn)安全的用戶狀態(tài)數(shù)據(jù)保存,從而實現(xiàn)登錄功能。

在這里插入圖片描述

表單

通過表單讓用戶和服務器進行數(shù)據(jù)交互。

from flask import Flask, request
import time
app = Flask(__name__)# 在使用表單前,需要初始化 SECRET_KEY
app.config['SECRET_KEY'] = 'SheepHero' # 自定義
# 可以通過GET和POST兩種方式獲取表單數(shù)據(jù)
@app.route('/form', methods=['GET', 'POST'])
def form():# args用戶獲取GET方式提交的數(shù)據(jù)msg_get = request.args.get('msg_get')# form用戶獲取POST方式提交的數(shù)據(jù)msg_post = request.form.get('msg_post')return f'GET數(shù)據(jù):{msg_get} <br/> POST數(shù)據(jù):{msg_post}'if __name__=='__main__':# 運行Flask應用,監(jiān)聽默認端口5000app.run(debug=True, host='0.0.0.0')

GET請求

測試GET請求,瀏覽器輸入http://172.16.37.37:5000/form?msg_get=你好!即可

get測試情況

POST請求

測試POST請求,可以編寫一個Python腳本,模擬POST請求

# 保存為post.py文件
import requests
url = 'http://172.16.37.37:5000/form'
payload = {'name':'羊大俠','alias':'SheepHero','msg_post':'Py羊大俠'
}
response = requests.post(url, data=payload)
print(response)
print(response.text)

post測試情況

http://www.risenshineclean.com/news/54793.html

相關文章:

  • 做網(wǎng)站哪家南京做網(wǎng)站網(wǎng)站關鍵詞挖掘
  • 網(wǎng)站建設市場前景體育新聞最新消息
  • 網(wǎng)站沒有被搜索引擎收錄東莞seo排名公司
  • 愛情動做網(wǎng)站推薦收錄批量查詢
  • 國內(nèi)做賭博網(wǎng)站代理怎么樣加快百度收錄的方法
  • 分布式移動網(wǎng)站開發(fā)技術一個品牌的策劃方案
  • 南昌哪里可以做電商網(wǎng)站seo收索引擎優(yōu)化
  • seo策略是什么青島seo推廣
  • 網(wǎng)站開發(fā)方向行業(yè)現(xiàn)狀青島網(wǎng)站建設制作公司
  • 建網(wǎng)站報價 優(yōu)幫云web免費網(wǎng)站
  • 常州做沙灘旗的公司網(wǎng)站做網(wǎng)絡優(yōu)化的公司排名
  • 安裝網(wǎng)站系統(tǒng)個人網(wǎng)絡銷售平臺
  • 建設獨立服務器網(wǎng)站成人技能培訓
  • 用discuz做的網(wǎng)站代哥seo
  • 中山市飲食網(wǎng)站建設網(wǎng)站性能優(yōu)化
  • 外貿(mào)行業(yè)建站廣告代運營公司
  • 網(wǎng)站做多久流量愛站網(wǎng) 關鍵詞挖掘
  • 諸城市做網(wǎng)站百度問答庫
  • 網(wǎng)站js下載網(wǎng)站搜索引擎優(yōu)化方法
  • 視頻解析網(wǎng)站建設中國人民銀行網(wǎng)站
  • 做網(wǎng)站空間500m多少錢推廣下載app賺錢
  • 網(wǎng)站開發(fā)報價明細營銷推廣的公司
  • 杭州十大室內(nèi)設計公司網(wǎng)站關鍵詞優(yōu)化方法
  • 公司網(wǎng)站怎么做站外鏈接濟南seo外包公司
  • 做網(wǎng)站推廣客服好做么百度地址
  • 去菲律賓做網(wǎng)站百度seo標題優(yōu)化軟件
  • 大連城建設計研究院網(wǎng)站南昌seo顧問
  • 天津校園文化設計公司湖南網(wǎng)站建設推廣優(yōu)化
  • 中國做美國酒店的網(wǎng)站制作網(wǎng)站公司
  • 廣州黃埔區(qū)網(wǎng)站建設北京seo網(wǎng)站優(yōu)化公司