flask入门补充
在上篇文章提到了json的編碼問題。那么Flask是國(guó)外開發(fā)的框架,沒有考慮到中文編碼,那么我們就需要自己配置
那么在訪問頁面的時(shí)候會(huì)有 get 請(qǐng)求和post? 請(qǐng)求。在下邊我也會(huì)提到。以及沒有接觸過編程的,我會(huì)推薦一個(gè)軟件,
來查看頁面的請(qǐng)求是 post 還是 get 請(qǐng)求? 以及我還會(huì)提到 在搭建項(xiàng)目的時(shí)候,軟件更新版本,原來的老項(xiàng)目不能用
的解決方法。也會(huì)有提到。
以下有一些配置方法。僅供參考
# 第一種配置方法,是在py文件中直接配置的。 # app.config['JSON_AS_ASCII'] = False # debug開啟模式 # app.config['DEBUG'] = True
# 第二種方式 # 從外部引入配置文件,用于加載,也就是需要新創(chuàng)建一個(gè)ini配置文件? ?config.ini # 內(nèi)部代碼就倆行 DEBUG = True JSON_AS_ASCII = False # 再回到原來的文件引入 # app.config.from_pyfile('config.ini')
# 第三種方式是配置環(huán)境變量。 # # C:\Users\自己的路徑,我找的是絕對(duì)路徑 \www\web\config.ini 從環(huán)境變量中來配置加載 # 我的是在win-10下搭建的 # 計(jì)算機(jī)-屬性-更改設(shè)置-高級(jí)-環(huán)境變量-新建? ? 那么第一行你需要起名,第二行需要復(fù)制路徑,也就是上邊的路徑 # 回到py文件中。 # app.config.from_envvar('app_config') # 這里注意在文件中導(dǎo)入的是字符串。
# 第四種方式 # 建立一個(gè)配置類 其實(shí)就是第一種方法,只是在類中封裝 class Config(object): DEBUG = True JSON_AS_ASCII = False # 那么在調(diào)用這個(gè)類名。就可以了
app.config.from_object(Config) 請(qǐng)求代碼 # 使用jsonify模塊來讓網(wǎng)頁直接顯示json數(shù)據(jù) # 實(shí)際是接口開發(fā) 被訪問是get 或者是 post 的倆種接收方式 # 以json吐數(shù)據(jù) # @app.route('/json', methods=['GRT','POST']) # 可以只留post方式 @app.route('/json', methods=['POST']) # 可以只留post方式,那么就會(huì)走下邊的errorhandler方法 def re_json(): json_dict = {'id':10, 'title':'flask的應(yīng)用','content':'flask的json格式化'} # 使用jsonify來講定義好的數(shù)據(jù)轉(zhuǎn)換為json格式,并且返回給前段 return jsonify(json_dict) # Flask統(tǒng)一對(duì)狀態(tài)碼捕獲異常 @app.errorhandler(405) def internal_server_error(e): # 為了用戶體驗(yàn)。我們把錯(cuò)誤的提示信息以文字的方式返回 return '這個(gè)接口不能被get請(qǐng)求到。只能發(fā)送Post請(qǐng)求'
# 捕獲404的異常。 @app.errorhandler(404) def internal_server_error_one(e): # 這里也一樣。 return '網(wǎng)頁不存在或者已經(jīng)刪除' 那么對(duì)于沒有接觸過編程的朋友們來說。有一款很強(qiáng)大的短信。postman? 意為郵差,很實(shí)用的一款軟件, 百度一下的話,都會(huì)有軟件的介紹,這里就不多說了。他可以發(fā)送post 和 get請(qǐng)求來抓取網(wǎng)址頁面的內(nèi)容? 一般是 用來在開發(fā)中測(cè)試api? ?大姐有興趣的可以了解一下 那么也可以用requests 模塊來模擬post請(qǐng)求和get請(qǐng)求,因?yàn)槭桥老x,所以也要有訪問的方式, 很簡(jiǎn)單的代碼。如下 import requests
# 使用requests模塊來發(fā)送post請(qǐng)求 r = requests.post('http://127.0.0.1:5000/json') # r = requests.get('http://127.0.0.1:5000/') html = r.content.decode('utf-8') # 解碼 print(html) 也可以拿到我們頁面的內(nèi)容 這里我是在windows下搭建的。沒有用Linux, 那么在創(chuàng)建文件目錄下種不要有中文。 如果安裝不上。用virtualenv --no-setuptools --no-pip --no-wheel venv在安裝試試 在python中的版本一般不向下兼容,也就是說python3.0的版本不適合python2.0的版本,那么我原來的 項(xiàng)目是用2.0的版本搭建的。現(xiàn)在放在3.0上運(yùn)行會(huì)不兼容。比如print 在2.0和3.0中的區(qū)別, 我們需要下載一個(gè)模塊?pip install virtualenv? 用來安裝虛擬環(huán)境 當(dāng)下載好之后 首先在命令窗口 找到項(xiàng)目,在項(xiàng)目中運(yùn)行代碼。如下: # C:\Users\xxxxxxx\www>pip install virtualenv # C:\Users\xxxxxxx\www\webone>virtualenv venv 在輸入這行命令之后會(huì)有 如下的顯示,證明安裝成功。暫時(shí)還沒有解決安裝不成功的方案,后續(xù)在解決 # Using base prefix 'c:\\users\\bingyue\\appdata\\local\\programs\\python\\python37' # New python executable in C:\Users\bingyue\www\webone\venv\Scripts\python.exe # Installing setuptools, pip, wheel... # done. 下載完成之后,我們進(jìn)入原項(xiàng)目中,會(huì)發(fā)現(xiàn)多一個(gè)目錄。venv的文件夾。我們進(jìn)入Scripts? 運(yùn)行命令?activate 當(dāng)出現(xiàn)下邊代碼第二行 前綴有? (venv) 那就證明虛擬環(huán)境搭建成功。 退出虛擬環(huán)境?deactivate # C:\Users\xxxxxxx\www\webone\venv\Scripts>activate 進(jìn)入虛擬環(huán)境 # (venv) C:\Users\xxxxxxx\www\webone\venv\Scripts> 提示我進(jìn)入虛擬環(huán)境 # (venv) C:\Users\xxxxxxx\www\webone\venv\Scripts>deactivate 退出虛擬環(huán)境 之后再為大家做詳細(xì)的補(bǔ)充 謝謝!
轉(zhuǎn)載于:https://www.cnblogs.com/binyuei/p/10144051.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 【Visual Studio 扩展工具】
- 下一篇: 404异常