Django學習筆記 2 正規表示式

2021-08-07 18:49:17 字數 1828 閱讀 4221

djangourl()使用了正規表示式。

通過新增endpoint到檢視函式的對映關係,瀏覽器訪問 +endpoint來獲得對應的檢視函式中的內容。

the url() function is passed four arguments, two required: regex and view, and two optional: kwargs, and name.

按照理解,下面**新增了''(啥也沒有)index檢視函式的對映關係(自己建立pools應用中)。

urlpatterns = [

url(r'^$', views.index, name='index'),

] # r,不對字串進行轉譯;^ 匹配字串的開頭;$ 匹配字串的結尾;這裡剛開始就結束了。

多看一些例子:

django應用中:

urlpatterns = [

url(r'^polls/', include('polls.urls')), # 匹配polls/開頭的字串

# 簡單理解,自己建立的pools應用的根目錄為pools/ ,然後訪問pools/ + endpoint 來訪問對應的檢視函式

url(r'^admin/', admin.site.urls),

]

專心看正規表示式:

r'^(?p[0-9]+)/$'

[0-9]匹配0~9之間的數字。如2,3,0

+匹配前面字元一次或多次,[0-9]+能匹配到 30,33,233 一組數字

()中的內容將作為分組。

?p將後面的數字分組命名為question_id,依然是匹配到 30,33,233這些數字。

^$表示開頭和結尾。

整個連起來就是匹配2/,30/,50/這些

下面的url()就是新增了2/,30/,50/這些endpoint到對應的檢視函式的對映關係。

url(r'^(?p[0-9]+)/$', views.detail, name='detail'),
r'^(?p[0-9]+)/results/$'

和上面的正規表示式類似,能匹配到2/results/30/results/50/results/這些。

下面的**一樣新增這些endpoint到對應檢視函式的對映關係。

url(r'^(?p[0-9]+)/results/$', views.results, name='results'),
r'^details/(?p\w)/$'

\w匹配單詞字元,a-z,a-z,0-9

,匹配前一字元0~50次。

整個正規表示式能匹配details/23/,details/y02/這些。

只是匹配url,不需要太多的正規表示式的內容。

Django學習筆記2

路由 檢視函式 瀏覽器訪問 一級路由 二級路由 常用的屬性 例子from django.db import models db database 資料庫 models 模型 學生表的 用類驅動資料 class user models.model id models.autofield primary...

正則表達學習筆記

b代表字串必須以b開頭 3 代表必須以3結尾 代表任意字元 代表前面字元可以重複任意多次 1 代表1至少出現一次 w.w w與w中間的字元出現2次 最少3次 最少3次,最多6次 import re line wuwei123 regex str w.3 if re.match regex str,l...

正則學習筆記2

問題 我原來寫的標籤中沒有加上,現在我想在寫好的頁面中用正規表示式對它們進行替換。舉例如下 其中的 為轉變標誌 1.2.test test 3.test test1 test2 test3 test4 test test1 test2 test3 test4 var str test test1 t...