• 使用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/
     


  • 相关阅读:
    JAVA笔记整理-数组
    JAVA笔记整理-流程控制-关键字 break、continue 、return的区别
    JAVA笔记整理-流程控制-循环
    Razor语法和Razor引擎大全
    MVC中几种常用ActionResult
    DataInputStream&DataOutputStream---操作基本类型值的流
    PipedOutputStream&PipedInputStream---管道流
    RandomAccessFile--随机访问文件
    ObjectOutputStream&ObjectInputStream--对象流
    SequenceInputStream--序列流
  • 原文地址:https://www.cnblogs.com/minna/p/10276106.html
Copyright © 2020-2023  润新知