使用Django模拟接口请求

想做个什么事情呢?就是想模拟一个接口请求,可以在页面输入请求的参数,可以将返回的结果显示在页面上!

准备工作如下:

1.创建项目: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.访问地址:http://127.0.0.1:8000/fp/


猜你喜欢

转载自www.cnblogs.com/minna/p/10276106.html
今日推荐