书接上文,前情回顾一下,上节我们编写了MVT中的M数据库设计,给用户信息设计了一张表User。
这节那就进行后面VT两个的初始化操作,比如写写视图和HTML模板。
视图:
根据项目名称hylogin下的url.py文件中,我们观察到这样一段代码,他是在告诉我们写视图中的URL导航存在下面三种方式去操作。
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
为了将这三种视图我们都使用到,所以我都将这三种都使用到,如下所示:
第一:直接使用函数视图。我们将首页和登录页设计函数视图表示,在此之前需要导包,也就是导入login包中的view视图《from login import views》
from django.contrib import admin
from django.urls import path,include
from login import views
from login.views import Logout
urlpatterns = [
path('admin/', admin.site.urls),
path('index/',views.index,name='index'),
path('login/',views.login,name='login'),
path('register/',include('login.urls')),#二级目录
# path('logout/', views.logout, name='logout'),
path('logout/', Logout.as_view(),name='logout')
]

第二:使用类视图
上面我们将登出设计为类视图,导入的包是《from login.views import Logout》也就是将login app中的views视图里面设计的class类导入
第三:使用include视图
上面将注册用于include视图,导入的包是《from django.urls import path,include》,include是根据二级路由设计的,现在我们再去login app中加入一个urls.py文件,然后将下面代码输入。
from django.urls import path,include
from login import views
app_name = 'login'
urlpatterns = [
path('',views.register,name='register')
]
如果想要判断自己写的url是否可以正常跳转,我们可以用下面方法去初判一下,按住ctrl,然后点击url中的关键字去查看是否可以跳转

接下来我们去写视图函数和类吧,为了能够在浏览器上查看到具体的效果,我们先返回一个字符串展示。
我们进入到login 的view.py中写代码了。
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.views import View
# Create your views here.
# 退出登录,采用类视图表示,使用类视图的作用是可以用不同的实例方法来响应不同的HTTp请求,而不是在函数视图中用条件分支代码完成
# 常用于表单处理中更加方便
class Logout(View):
'''
这是作用于函数视图中表达的方式
def logout(self,request):
# return redirect("/login/")
if request.method=="GET":
return HttpResponse("hello logout")
'''
# 这是类试图的作用
def get(self,request):
return HttpResponse("hello logout")
# 首页
def index(request):
# return render(request,"login/index.html")
return HttpResponse("hello index")
# 登录页面
def login(request):
# return render(request, "login/login.html")
return HttpResponse("hello login")
# 注册页面
def register(request):
# return render(request, "login/register.html")
return HttpResponse("hello register")
上面定义的函数名需要与url中写的名字一一对应。比如首页我们在url也就是在urls.py中写的是《path(‘index/’,views.index,name=‘index’),》,所以在views.py中需要将函数名写成index。
注意哦,在include中我们不需要写def logout函数,具体可看代码中的注释有说明,这是django规定的。里面是写get或者post的请求方法。
判断url写的是否正确,我们也可以在urls.py中按住ctrl,然后点击对应的关键字,看看是否会跳转到对应的视图函数位置。如果写的不对,跳转会出问题的哦。
接下来在terminal终端输入命令《python manage.py runserver》启动项目,然后在浏览器输入《http://127.0.0.1:8000/index/》访问首页看看会访问什么。

你也可以去改变index,输入login看看是不是上面视图函数中return的字符串。
本文详细介绍了如何在Django项目中初始化视图和HTML模板,涵盖了函数视图、类视图和include视图的应用,并通过实例展示了如何设置URL路由和创建基本的登录、注销、注册功能。

被折叠的 条评论
为什么被折叠?



