PythonWeb开发框架—Django框架之视图函数views的开发步骤和不同请求参数处理详解

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)
  • 设置接口调用路径

路径参数也要带上

  • 调用接口

  • 接口调用校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值