使用Django模擬接口請求


想做個什么事情呢?就是想模擬一個接口請求,可以在頁面輸入請求的參數,可以將返回的結果顯示在頁面上!

准備工作如下:

1.cmd下創建項目:django-admin startproject login

2.創建APP:

cd login 

python manage.py startapp learn # learn 是一個app的名稱

3.把我們新定義的app加到settings.py中的INSTALL_APPS中(這里很重要)

修改 mysite/mysite/settings.py

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learn',
)

**************************************************************************************************************

准備工作做好了,就要開始寫代碼了,不是很難哦(也糾結了我不少時間)。。。

需要用到的地方有urls.py  views.py 還要新創建HTML文件

1.view.py代碼如下:

from django.shortcuts import render,HttpResponse
import json
import requests#這個是導入的第三方包,百度一下就知道怎么導入了
BASE_URL = None
def index(request):
return HttpResponse('Index')
def fp(request):
if request.method=='GET':
return render(request, 'fp.html')
elif request.method=='POST':
address=request.POST.get('address')#get時都是get的value值哦
if address == '62':
BASE_URL='對應自己項目的url'
elif address == '68':
BASE_URL = '對應自己項目的url'
        elif address == '70':
BASE_URL = '
對應自己項目的url'
 else:
print('數據准備環境描述有誤:%s, 請排查!' % 'adress')
busiId=request.POST['busiId']
circulationPrice=request.POST.get('circulationPrice')
zsPrice=request.POST.get('zsPrice')
fupingEvaluate=request.POST.get('fupingEvaluate')
fupingFallbackPrice=request.POST.get('fupingFallbackPrice')
flowResult=request.POST.get('flowResult')
remark=request.POST.get('remark')
interface_url='
對應自己項目的url'
 url=BASE_URL+interface_url
content={
"content":
{
"busiId":busiId,
"circulationPrice":circulationPrice,
"zsPrice":zsPrice,
"fupingEvaluate":fupingEvaluate,
"fupingFallbackPrice":fupingFallbackPrice,
"flowResult":flowResult,
"remark":remark,
"userId": "1"
}
}
content=json.dumps(content)
reponse=requests.post(url=url,data=content)#接口請求
print(reponse.text)
return render(request, 'success.html',{'data':reponse.text})#請求后進入到success.html頁面,響應回來的數據放入data中,用於顯示在success.html頁面上
else:
return render(request,'fp.html')

2.在learn 下新建一個文件夾命名為templates(這個是固定的),在templates新建兩個HTML文件,一個命名為fp.html,一個是success.html(這個是自己定義的)

fp.html中寫入的是頁面要顯示的前端代碼,如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/fp/" method="post" > 此處的action值是提交頁面后進入的path,method為post代表發送的是post請求,如果是get請求這里就修改為get

{% csrf_token %}
<label><font color="#FF0000">---模擬接口---</font></label>
<br/>
<label>請選擇服務器:</label>
<select name="address">
<option value="62">62</option>
<option value="68">68</option>
<option value="70">70</option>
</select>
<br/>
<label>請輸入busiId:</label>
<input name="busiId" value="" type="input">
<br/>
<label>請輸入評估流通價:</label>
<input name="circulationPrice" value="" type="input">
<br/>
<label>請輸入評估師金額:</label>
<input name="zsPrice" value="" type="input">
<br/>
<label><font color="#0000FF">請輸入收車價:</font></label>
<input name="fupingEvaluate" value="" type="input">
<br/>
<label>請輸入差額兜底價:</label>
<input name="fupingFallbackPrice" value="" type="input">
<br/>
<label>請選擇意見:</label>
<select name="flowResult">
<option value="1">通過</option>
<option value="2">拒絕</option>
</select>
<br/>
<label>請輸入備注:</label>
<input name="remark" value="" type="input">
<br/>
<input id="su2" value="去終審" class="bg s_btn" type="submit">
</form>

</body>
</html>

success.html內寫入的是提交成功后需要顯示的頁面,讀取的數據需要是接口返回的,代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>結果頁面</title>
</head>
<body>
<div>{{data}}</div> data是接口返回的數據,固定寫法
</body>
</html>
3.urls.py正則匹配

from django.contrib import admin
from django.urls import path
from learn import views as learn_views

urlpatterns = [
path('fp/',learn_views.fp,name='fp'),#路徑和方法
path('', learn_views.index),
path('admin/', admin.site.urls),
]
4.啟動:python manage.py runserver
5.訪問地址:http://127.0.0.1:8000/fp/

6.若想讓其它電腦也能訪問,需做如下修改

settings.py修改如下
ALLOWED_HOSTS = ['*']

啟動項目時需要帶本地IP地址

python manage.py runserver ip:8000

訪問地址:
http://ip:8000/fp/
 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM