Python之web开发(六):python使用django框架搭建网站之登陆页搭建不同页面之间跳转

【写在前面】:有关urls及path函数的应用详见:https://blog.csdn.net/weixin_44322778/article/details/102598346
【官方说明】:

  • 规划 URLs¶

简洁优雅的 URL 规划对于一个高质量 Web 应用来说至关重要。Django 推崇优美的 URL 设计,所以不要把诸如 .php 和 .asp 之类的冗余的后缀放到 URL 里。

为了设计你自己的 URLconf ,你需要创建一个叫做 URLconf 的 Python 模块。这是网站的目录,它包含了一张 URL 和 Python 回调函数之间的映射表。URLconf 也有利于将 Python 代码与 URL 进行解耦(译注:使各个模块分离,独立)。

详见:https://docs.djangoproject.com/zh-hans/2.0/topics/http/urls/

【step1】创建登陆页面应用

python manage.py startapp users

在这里插入图片描述
添加users.url文件:
在这里插入图片描述
【step2】:配置好总路由和分路由
第一步是要在根 URLconf 文件中指定我们创建的 users.urls和myapp.urls模块。在 myapp/urls.py 文件的 urlpatterns 列表里插入两个 include(), 如下:
- 总路由配置

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    # path(r'', view.index),
    # path(r'', view1.register),

    path('', include('myapp.urls')),
    path('', include('users.urls')),
    path('users/', include('users.urls')),
]

ps:函数 include() 允许引用其它 URLconfs。每当 Django 遇到 :func:~django.urls.include 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。
- 分路由配置

我们设计 include() 的理念是使其可以即插即用。因为myapp应用有它自己的 URLconf( myapp/urls.py ),他们能够被放在 “/polls/” , “/fun_polls/” ,"/content/polls/",或者其他任何路径下,这个应用都能够正常工作。
myapp.urls

from django.urls import path
from myapp import view


urlpatterns = [
   # path('myapp/', views.index),
   path('', view.index, name='index'),

]

users.urls

from django.urls import path
from . import view1


urlpatterns = [
    path('', view1.login, name='login'),
    path('', view1.register, name='register'),

]


【step3】:配置好总路由和分路由对应的HTML文件
为 URL 名称添加命名空间¶
官方文档详见:https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial03/
教程项目只有一个应用,polls 。在一个真实的 Django 项目中,可能会有五个,十个,二十个,甚至更多应用。Django 如何分辨重名的 URL 呢?举个例子,polls 应用有 detail 视图,可能另一个博客应用也有同名的视图。Django 如何知道 {% url %} 标签到底对应哪一个应用的 URL 呢?

答案是:在根 URLconf 中添加命名空间。在 polls/urls.py 文件中稍作修改,加上 app_name 设置命名空间:

扫描二维码关注公众号,回复: 11559542 查看本文章

polls/urls.py
from django.urls import path

from . import views

app_name = ‘polls’
urlpatterns = [
path(’’, views.index, name=‘index’),
path(‘int:question_id/’, views.detail, name=‘detail’),
path(‘int:question_id/results/’, views.results, name=‘results’),
path(‘int:question_id/vote/’, views.vote, name=‘vote’),
]
现在,编辑 polls/index.html 文件,从:

polls/templates/polls/index.html

  • {{ question.question_text }}
  • 修改为指向具有命名空间的详细视图:

    polls/templates/polls/index.html

  • {{ question.question_text }}
  • 当你对你写的视图感到满意后,请阅读 教程的第 4 部分 了解简单的表单处理和通用视图。 **【step4】:结果验证** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191017092828983.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyMjc3OA==,size_16,color_FFFFFF,t_70) 点击”**用户登录**“ ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191017092942273.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMyMjc3OA==,size_16,color_FFFFFF,t_70)

    猜你喜欢

    转载自blog.csdn.net/weixin_44322778/article/details/102550161