Python之web开发(六):python使用django框架搭建网站之登陆页搭建不同页面之间跳转
【寫在前面】:有關(guān)urls及path函數(shù)的應(yīng)用詳見(jiàn):https://blog.csdn.net/weixin_44322778/article/details/102598346
【官方說(shuō)明】:
- 規(guī)劃 URLs?
簡(jiǎn)潔優(yōu)雅的 URL 規(guī)劃對(duì)于一個(gè)高質(zhì)量 Web 應(yīng)用來(lái)說(shuō)至關(guān)重要。Django 推崇優(yōu)美的 URL 設(shè)計(jì),所以不要把諸如 .php 和 .asp 之類的冗余的后綴放到 URL 里。
為了設(shè)計(jì)你自己的 URLconf ,你需要?jiǎng)?chuàng)建一個(gè)叫做 URLconf 的 Python 模塊。這是網(wǎng)站的目錄,它包含了一張 URL 和 Python 回調(diào)函數(shù)之間的映射表。URLconf 也有利于將 Python 代碼與 URL 進(jìn)行解耦(譯注:使各個(gè)模塊分離,獨(dú)立)。
詳見(jiàn):https://docs.djangoproject.com/zh-hans/2.0/topics/http/urls/
【step1】創(chuàng)建登陸頁(yè)面應(yīng)用
python manage.py startapp users
添加users.url文件:
【step2】:配置好總路由和分路由
第一步是要在根 URLconf 文件中指定我們創(chuàng)建的 users.urls和myapp.urls模塊。在 myapp/urls.py 文件的 urlpatterns 列表里插入兩個(gè) include(), 如下:
- 總路由配置
ps:函數(shù) include() 允許引用其它 URLconfs。每當(dāng) Django 遇到 :func:~django.urls.include 時(shí),它會(huì)截?cái)嗯c此項(xiàng)匹配的 URL 的部分,并將剩余的字符串發(fā)送到 URLconf 以供進(jìn)一步處理。
- 分路由配置
我們?cè)O(shè)計(jì) include() 的理念是使其可以即插即用。因?yàn)閙yapp應(yīng)用有它自己的 URLconf( myapp/urls.py ),他們能夠被放在 “/polls/” , “/fun_polls/” ,"/content/polls/",或者其他任何路徑下,這個(gè)應(yīng)用都能夠正常工作。
myapp.urls
users.urls
from django.urls import path from . import view1urlpatterns = [path('', view1.login, name='login'),path('', view1.register, name='register'),]【step3】:配置好總路由和分路由對(duì)應(yīng)的HTML文件
為 URL 名稱添加命名空間?
官方文檔詳見(jiàn):https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial03/
教程項(xiàng)目只有一個(gè)應(yīng)用,polls 。在一個(gè)真實(shí)的 Django 項(xiàng)目中,可能會(huì)有五個(gè),十個(gè),二十個(gè),甚至更多應(yīng)用。Django 如何分辨重名的 URL 呢?舉個(gè)例子,polls 應(yīng)用有 detail 視圖,可能另一個(gè)博客應(yīng)用也有同名的視圖。Django 如何知道 {% url %} 標(biāo)簽到底對(duì)應(yīng)哪一個(gè)應(yīng)用的 URL 呢?
答案是:在根 URLconf 中添加命名空間。在 polls/urls.py 文件中稍作修改,加上 app_name 設(shè)置命名空間:
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’),
]
現(xiàn)在,編輯 polls/index.html 文件,從:
polls/templates/polls/index.html
- {{ question.question_text }}
- 修改為指向具有命名空間的詳細(xì)視圖:
polls/templates/polls/index.html
- {{ question.question_text }}
- 當(dāng)你對(duì)你寫的視圖感到滿意后,請(qǐng)閱讀 教程的第 4 部分 了解簡(jiǎn)單的表單處理和通用視圖。 **【step4】:結(jié)果驗(yàn)證**  點(diǎn)擊”**用戶登錄**“ 
總結(jié)
以上是生活随笔為你收集整理的Python之web开发(六):python使用django框架搭建网站之登陆页搭建不同页面之间跳转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python3.7.4+Django2.
- 下一篇: python将EXCEL数据导入数据库时