Django工程的创建和models的使用若需要请查看我的历史文章:Django工程的创建和models的定义和增删改查
1.Views开发步骤
- 第一步:定义接口
在自己业务文件夹下的views.py中定义接口
- 第二步:设置调用路径
- 第三步:调用接口
启动django工程后,调用第二步设置的访问路径
2.获取请求参数
2.1 Post请求的Json类型
获取Json参数的方法:request.body.decode()
- 定义接口
##models.py
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(verbose_name='用户名', max_length=32)
password = models.CharField(verbose_name='登录密码', max_length=64)
userid = models.CharField(verbose_name='用户ID', max_length=64)
phonenumber=models.CharField(verbose_name='手机号',max_length=11)
class Meta:
db_table = 'user'
##views.py
import json
from django.http import JsonResponse, HttpResponse
from django.shortcuts import render
from testmodule.models import User
from django.apps import AppConfig
# Create your views here.
class DataOperate():
def adddata(self,username,password,userid,phonenumber):
adddata=User.objects.create(name=username,
password=password,
userid=userid,
phonenumber=phonenumber)
def post_json_request_api(request):
body = json.loads(request.body.decode()) #获取Json格式参数并转化为Python对象
dataoperate = DataOperate()
dataoperate.adddata(body["username"],body["password"],body["userid"],body["phonenumber"])
return JsonResponse({"code":200}, safe=False)
- 设置调用路径
- 调用接口
启动Django工程后,用API工具请求接口
- 检查调用情况
查询数据库发现数据已经add进来了
如果在用API工具调用接口时,报错403
解决办法:settings.py 去掉csrf限制
2.2 Post请求的其他类型
获取K=V表单参数和K=Json参数的方法: request.POST.get("args")
- 定义接口
def post_request_api(request):
param_value = request.POST.get("args")
print("param_value是多少:{}".format(param_value))
return JsonResponse({"code":200}, safe=False)
- 设置调用路径
- 调用接口
K=Json类型参数
K=V表单类型参数
- 接口调用结果校验
K=Json
K=V表单类型
2.3 Get请求查询参数
获取get请求查询参数的方法:request.GET.get("id")
- 定义接口
##models.py
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(verbose_name='用户名', max_length=32)
password = models.CharField(verbose_name='登录密码', max_length=64)
userid = models.CharField(verbose_name='用户ID', max_length=64)
phonenumber=models.CharField(verbose_name='手机号',max_length=11)
class Meta:
db_table = 'user'
##views.py
import json
from django.http import JsonResponse, HttpResponse
from django.shortcuts import render
from testmodule.models import User
from django.apps import AppConfig
# Create your views here.
class DataOperate():
def querydata_filter(self,userid):
#select * from user where userid =userid
filter_data=User.objects.filter(userid=userid)
return filter_data
def get_query_request_api(request):
param_value = request.GET.get("userid")
print("get请求传下来的查询参数:{}".format(param_value))
dataoperate = DataOperate()
query_data=dataoperate.querydata_filter(param_value)
for item in query_data:
print("查询出来的name:{}".format(item.name))
print("查询出来的phonenumber:{}".format(item.phonenumber))
return JsonResponse({"code":200}, safe=False)
- 设置接口调用路径
- 调用接口
启动Django工程,用API工具调用
- 接口调用结果校验
和数据库里userid=uhgdgjy的name和phonenumber一致
2.4 Get请求路径参数
- 定义接口
路径参数需要作为接口的参数
##views.py
#路径参数作为接口的参数
def get_path_request_api(request,userid):
dataoperate = DataOperate()
query_data=dataoperate.querydata_filter(userid=userid)
for item in query_data:
print("查询出来的name:{}".format(item.name))
print("查询出来的phonenumber:{}".format(item.phonenumber))
return JsonResponse({"code":200}, safe=False)
- 设置接口调用路径
路径参数也要带上
- 调用接口
- 接口调用校验