django -- html页面展示

创建一个自己的网站应用

python manage.py startapp polls

执行以上命令后会新增下面的文件

 

配置路由

配置主路由

这里配置的主路由只是路径的前半部分,后半部分的配置在下面

include记得上面引包的时候加上,Include后面是子路由,比如项目polls的这个应用,那么配置的子路由是include(polls.urls),这个子应用里的urls需要自己创建

如果该django中有多个应用,就需要配置多个主理由,如果只有一个,直接写一个就行。

单个应用

多个应用

配置应用子路由

在应用文件夹polls下面创建一个子路由文件urls.py

 

创建view

上面已经路由完成,指明了每个路由对应的view,接下来要处理view的逻辑

目的是让我们访问到路由后能够做出对应的事件(比如渲染html)

 views具体内容:

比如下面的是登录,这个视图是渲染出一个html文件

 1 from django.shortcuts import render
 2 from django.http import HttpResponse,HttpResponseBadRequest
 3 from polls.models import User
 4 from django.views import View
 5 # Create your views here.
 6 
 7 
 8 class Res_view(View):
 9     def get(self, request):
10 
11         return render(request, 'register.html')
12 
13     def post(self, request):
14         #
15         # 1.接收数据
16         user = request.POST.get('user')
17         pwd = request.POST.get('pwd')
18 
19         if not all([user,pwd]):
20             return HttpResponseBadRequest("请输入账号或密码!")
21 
22     # try:
23     #     u = User.objects.create_user(u= user,
24     #                                  username=user,
25     #                                  password=pwd)
26     # except  DatabaseError as e:
27     #     # logger.error(e)
28     #     return HttpResponseBadRequest('注册失败')

创建模板和html

配置,先将html的路径声明好,不然项目不知道html放在哪里

 这一步做好之后,还要将应用polls加到配置settings中的INSTALLED_APPS ,不然识别不到项目

 

创建文件夹和html文件

最后把路由写好:

工程的路由:

 1 from django.contrib import admin
 2 from django.urls import path,include
 3 
 4 urlpatterns = [
 5     path('admin/', admin.site.urls),
 6     # include参数中我们首先设置一个元组 urlconf_module, app_name
 7     # urlconf_module 子应用的路由
 8     # app_name 子应用的名字
 9     # namespace 命名空间
10     path('', include(('polls.urls', 'polls'), namespace = 'polls')),
11 ]

polls子应用的路由:

1 from django.urls import path
2 from polls.views import  Res_view
3 
4 urlpatterns = [
5     path('register/',Res_view.as_view(),name = 'register'),
6 ]

最后运行127.0.0.1:8000/register就ok了

认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
原文地址:https://www.cnblogs.com/jyf2018/p/15478365.html