Django视图层views/视图函数

1. 视图函数介绍:

   (1)一般放在views.py文件中;
   (2)两个重要的对象:请求对象(request)与响应对象(HttpResponse)

2. 视图函数(简称视图),需要完成如下操作:

对于前端html提交给服务端的数据,做逻辑处理:

   (1)通过request对象接收web请求的数据,并对入参做校验或额外的逻辑校验
          【优化步骤:使用模块---from django import forms】
          【在当前目录下新建forms.py,新建类:分别处理入参数据校验(例如:forms.CharField() 和 额外逻辑校验(def clean_username(self):)】
          【然后views.py视图从forms.py中获取请求数据,对数据做进一步处理】
   (2)返回web响应【响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片、或者是数据集locals()等】
   (3)代码:
    forms.py文件:
    from django import forms
    from . import models
    class UserForm(forms.Form):
        username=forms.CharField(max_length=10,min_length=5,required=True)
        password=forms.CharField(max_length=32,min_length=6,required=True)
        def clean_username(self):
            username=self.data.get("username")
            if models.User.objects.filter(username=username).exists():
                self.add_error("username","用户已经存在")
            else:
                return username

    views.py文件:
    from user import forms
    def register2(request):
        form=forms.UserForm(request.POST)
        if form.is_valid():
            models.User.objects.create(**form.cleaned_data)
            data = {"data": "0", "msg": "注册成功"}
            return JsonResponse(data)
        return JsonResponse(form.errors.get_json_data())

对于request接口提交给服务端的数据,做逻辑处理:

def request_test(request):
    print(request.method) #请求方式
    print(request.GET)  #获取请求url中的参数,是个字典
    print(request.GET.get("XXX")) #获取请求url字典里的数据
    print(request.POST) # 获取请求body里传的参数
    print(request.COOKIES.get("XXX")) #获取请求cookies里面的
    print(request.META.get("HTTP_META")) #获取请求header里面传的meta。这里获取时前面必须有大写HTTP,且这里参数也要大写
    # https://pythondjango.cn/blog/articles/?page=2
    print(request.path)  # 获取请求路径. `/blog/articles/`
    print(request.path_info)  # 【推荐使用】获取请求路径. `/blog/articles/`
    print(request.get_full_path)  # 获取请求路径 ‘blog/articles/?page=2’
    print(request.FILES.get("file_name"))  # 获取请求文件
    print(re
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值