Django视图之介绍和项目准备PostMan测试

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django视图之介绍和项目准备PostMan测试相关的知识,希望对你有一定的参考价值。

视图介绍和项目准备

视图介绍

  • 视图就是应用views.py文件中的函数
  • 视图的第一个参数必须为HttpRequest对象,还可能包含下参数如
    • 通过正则表达式组获取的位置参数
    • 通过正则表达式组获得的关键字参数
  • 视图必须返回一个HttpResponse对象子对象作为响应
    • 子对象: JsonResponse HttpResponseRedirect
  • 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者
    • 响应内容可以是html内容404错误重定向json数据...
  • 视图处理过程如下图:

使用视图时需要进行两步操作,两步操作不分先后

  1. 配置URLconf
  2. 应用/views.py中定义视图

项目准备

创建项目+创建应用+安装应用+配置模板路径+本地化+mysql数据库+URLconf+视图

mysql数据库使用之前的book

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1', # 数据库主机
        'PORT': 3306, # 数据库端口
        'USER': 'root', # 数据库用户名
        'PASSWORD': 'mysql', # 数据库用户密码
        'NAME': 'book' # 数据库名字
    

URLconf

  • settings.py中:指定url配置

    ROOT_URLCONF = 'bookmanager.urls'
    
  • 项目中urls.py:只要不是admin/就匹配成功,包含到应用中的urls.py

    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('',include('book.urls'))
    ]
    

应用中urls.py:匹配testproject/成功就调用views中的testproject函数,测试项目逻辑

from django.urls import path
from book.views import index

urlpatterns = [
    path('index/',index)
]

视图:测试项目逻辑

from django.http import HttpResponse

def index(request):

    return HttpResponse("OK")

在models.py 文件中定义模型类

from django.db import models

# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=20, verbose_name='名称')
    pub_date = models.DateField(verbose_name='发布日期',null=True)
    readcount = models.IntegerField(default=0, verbose_name='阅读量')
    commentcount = models.IntegerField(default=0, verbose_name='评论量')
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    class Meta:
        db_table = 'bookinfo'  # 指明数据库表名
        verbose_name = '图书'  # 在admin站点中显示的名称

    def __str__(self):
        """定义每个数据对象的显示信息"""
        return self.name

# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
    GENDER_CHOICES = (
        (0, 'male'),
        (1, 'female')
    )
    name = models.CharField(max_length=20, verbose_name='名称')
    gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性别')
    description = models.CharField(max_length=200, null=True, verbose_name='描述信息')
    book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='图书')  # 外键
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    class Meta:
        db_table = 'peopleinfo'
        verbose_name = '人物信息'

    def __str__(self):
        return self.name

生成迁移文件

python manage.py makemigrations

同步到数据库中

python manage.py migrate

添加测试数据

insert into bookinfo(name, pub_date, readcount,commentcount, is_delete) values
('射雕英雄传', '1980-5-1', 12, 34, 0),
('天龙八部', '1986-7-24', 36, 40, 0),
('笑傲江湖', '1995-12-24', 20, 80, 0),
('雪山飞狐', '1987-11-11', 58, 24, 0);
insert into peopleinfo(name, gender, book_id, description, is_delete)  values
    ('郭靖', 1, 1, '降龙十八掌', 0),
    ('黄蓉', 0, 1, '打狗棍法', 0),
    ('黄药师', 1, 1, '弹指神通', 0),
    ('欧阳锋', 1, 1, '蛤蟆功', 0),
    ('梅超风', 0, 1, '九阴白骨爪', 0),
    ('乔峰', 1, 2, '降龙十八掌', 0),
    ('段誉', 1, 2, '六脉神剑', 0),
    ('虚竹', 1, 2, '天山六阳掌', 0),
    ('王语嫣', 0, 2, '神仙姐姐', 0),
    ('令狐冲', 1, 3, '独孤九剑', 0),
    ('任盈盈', 0, 3, '弹琴', 0),
    ('岳不群', 1, 3, '华山剑法', 0),
    ('东方不败', 0, 3, '葵花宝典', 0),
    ('胡斐', 1, 4, '胡家刀法', 0),
    ('苗若兰', 0, 4, '黄衣', 0),
    ('程灵素', 0, 4, '医术', 0),
    ('袁紫衣', 0, 4, '六合拳', 0);

使用 PostMan 对请求进行测试 

PostMan 是一款功能强大的网页调试与发送网页 HTTP 请求的 Chrome 插件,可以直接去对我们写出来的路由和视图函数进行调试,作为后端程序员是必须要知道的一个工具。

  • 使用 PostMan,打开之后,会弹出注册页面,选择下方的Skip this,go straight to the app进行程序

 

以上是关于Django视图之介绍和项目准备PostMan测试的主要内容,如果未能解决你的问题,请参考以下文章

Postman接口功能测试介绍

Postman接口功能测试介绍

接口测试工具之postman入门介绍

postman接口功能测试

如何用Postman做接口测试

通过 urlpatterns 和视图替换 django-postman 中的默认表单