Python之路60-Django 视图

Posted

tags:

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

目录

一、定义视图

二、响应

 


一、定义视图

views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect

# 以函数方式定义
def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    elif request.method == "POST":
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        if user == "admin" and pwd == "123":
            return redirect("/index/")
        else:
            return render(request, "login.html")
    else:
        # PUT,DELETE,HEAD...
        return redirect("/index/") 
       
# 以类方式定义
from django.views import View



class Home(View):

    
    # 父类会通过dispatch去获取request信息并判断,然后执行相关方法,返回数据也要通过dispatch方法,before、after可以再执行方法前做一些自定义操作
    def dispatch(self, request, *args, **kwargs):
        # 调用父类中的dispatch
        print("before")
        result = super(Home, self).dispatch(request, *args, **kwargs)
        print("after")
        return result

    
    def get(self, request):
        print(request.method)
        return render(request, "home.html")

    
    def post(self, request):
        print(request.method)
        return render(request, "home.html")

二、响应

 

1.返回字符串

return HttpResponse("字符串")

2.返回html

return render(request, "html模板路径", {data: data})

 

3.重定向

return redirect("/url路径")

 


本文出自 “八英里” 博客,请务必保留此出处http://5921271.blog.51cto.com/5911271/1927645

以上是关于Python之路60-Django 视图的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

Python之路第二十篇--MySQL

7Python全站之路系列之MySQL视图

2Python全栈之路系列之Django路由与视图

python之路_excel批量导入数据

Python之路--Django--中间件