在企業(yè)開(kāi)發(fā)中采用前后端分離的方式進(jìn)行開(kāi)發(fā),而前后端開(kāi)發(fā)完成后需要進(jìn)行連通性測(cè)試,測(cè)試前后端能否正常地使用json進(jìn)行數(shù)據(jù)交互。而作為獨(dú)立開(kāi)發(fā)者來(lái)說(shuō)(比如廣大計(jì)算機(jī)專(zhuān)業(yè)學(xué)生必須經(jīng)歷的畢業(yè)設(shè)計(jì)),連通性測(cè)試一般會(huì)放在剛開(kāi)始開(kāi)發(fā)的時(shí)候。比如先搭建一個(gè)helloworld頁(yè)面,然后測(cè)試前后端是否能正常進(jìn)行數(shù)據(jù)的交互,在能數(shù)據(jù)交互的情況下再進(jìn)行增量開(kāi)發(fā)。今天小編帶來(lái)的就是一篇關(guān)于python后端和前端怎么對(duì)接的教程。不過(guò),這篇的前端是使用python編寫(xiě)的客戶(hù)端,接下來(lái)就跟小編一起來(lái)了解一下怎么進(jìn)行python的前后端數(shù)據(jù)交互吧。
閱前須知
本篇文章需要有如下兩篇文章的技術(shù)支持,如果沒(méi)有閱讀過(guò)這兩篇文章,建議先進(jìn)行這兩篇文章的學(xué)習(xí)。
python json實(shí)戰(zhàn)—如何解析json
python json實(shí)戰(zhàn)—web后端如何發(fā)送json
后端處理
后端在之前的文章中已經(jīng)有所介紹,本處不多做改變,只對(duì)json進(jìn)行了一定的規(guī)范。
from flask import Flask
import json
app = Flask(__name__)
@app.route('/hello') # 規(guī)定url,當(dāng)請(qǐng)求的url為/hello時(shí)執(zhí)行注解下的函數(shù)
def hello_world():
# 在python中,與json對(duì)應(yīng)的數(shù)據(jù)格式是字典,所以我們這邊創(chuàng)建一個(gè)字典用來(lái)存儲(chǔ)數(shù)據(jù)與返回
data = {
'status': '200',
'message': 'ok',
'no': '1',
'name': 'W3CSchool',
'url': 'http://hgci.cn'
}
print(type(data))
# 打印,確定數(shù)據(jù)類(lèi)型是字典
json_str = json.dumps(data)
# 使用dumps將字典類(lèi)型轉(zhuǎn)換為字符串,這樣才能通過(guò)http協(xié)議返回
# json在傳輸時(shí)是以字符串進(jìn)行傳輸?shù)? return json_str # 使用flask,可以直接用return返回這個(gè)字符串,即可將json返回
if __name__ == '__main__':
app.run() # 運(yùn)行這個(gè)flask項(xiàng)目
客戶(hù)端處理
客戶(hù)端與之前文章中的大體一致,只不過(guò)將請(qǐng)求的鏈接轉(zhuǎn)換成了我們的后端服務(wù)器鏈接。同時(shí)用python對(duì)返回的數(shù)據(jù)進(jìn)行了簡(jiǎn)單的處理并展示。
import requests
import json
response = requests.get('http://127.0.0.1:5000/hello')
# 使用request請(qǐng)求一個(gè)json
response = response.text
# 使用requests的的text方法取出響應(yīng)的文本
dict = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個(gè)字符串轉(zhuǎn)化為字典
print(dict)
#打印這個(gè)字典
print(type(dict))
#確認(rèn)是否為字典類(lèi)型
#以下是字典操作方法,將字典的數(shù)據(jù)取出并打印
print('響應(yīng)狀態(tài):'+dict.get('status'))
print('返回信息:'+dict.get('message'))
print('編號(hào):'+dict.get('no'))
print('網(wǎng)站名稱(chēng):'+dict.get('name'))
print('網(wǎng)站url:'+dict.get('url'))
運(yùn)行結(jié)果
小結(jié)
以上就是python后端和前端怎么對(duì)接的全部?jī)?nèi)容。對(duì)于敏捷編程而言,每次進(jìn)行增量開(kāi)發(fā)后,都要進(jìn)行連通性測(cè)試,而最開(kāi)始的項(xiàng)目就建立在一個(gè)成功打通前后端的項(xiàng)目上,所以掌握前后端交互的方法是至關(guān)重要的。
更多python教程,關(guān)注W3C的python編程獅。