1. 程式人生 > >有名無名分組,反向註釋

有名無名分組,反向註釋

周期 rtc 沒有 gtest con shortcuts rgs 反向解析 不同的

新加一個app要在INSTALLED_APPS中

輸入: 1、app01.apps.app01Config

     2、app01 把MIDDLEWARE中的第四句給註釋掉

這是和static文件夾對應的

STATICFILES_DIRS=[

   os.path.join(BASE_DIR,‘static‘)

]

Django請求的整個生命周期

用戶瀏覽器--》web服務器(wsgi協議)---》url(路由層)—》視圖層(視圖函數)———》模板層、數據操作 操作完之後再返回回去

視圖層中的操作

1、視圖函數從數據操作層(models)取數據

2、取到數據進行數據邏輯處理

3、從模板層取出模板,用數據進行渲染

4、將渲染好的html模板,返回給用戶瀏覽器

urlpatterns = [     
    url(r‘^admin/$‘, admin.site.urls),
]
url是函數 ,r‘^admin/‘是正則 ^是以a開頭 $是以n結尾

publish/匹配四位數字
url(r‘^publish/[0-9]{4}/$‘, views.publish),

匹配任意長度的數字
url(r‘^publish/\d+/$‘, views.publish),

import re
ret=re.search(‘publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})‘,‘publish/2018/12/eee‘)
print(ret.group()) 得到publish/2018
print(ret.group(1)) 得到2018
print(ret.group(2)) 得到12

無名分組:
分組之後,會把分組出來的數據,當參數,傳到視圖函數,視圖函數需要定義形參
- url(r‘^publish/([0-9]{4} / (0-9){2})$‘, views.publish),
在views文件中
def publish(request,year,mounth): 中可以打印出來年份和月份 按位置進行傳值
def publish(request,*args): 括號中也可以輸入*args 結果是(‘2018’,‘12’)或是**kwargs這樣的結果是以字典的形式顯示出來
有名分組:
-- 按關鍵字傳參
-- 有名分組之後,會把分組出來的數據,當關鍵字參數,傳到視圖函數,所以視圖函數需要定義形參,形參名字
要跟分組的名字對應,與順序無關
ret=re.search(‘publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})‘,‘publish/2018/12/eee‘)
?P<year>給參數取名為year
print(ret.group()) 得到publish/2018
print(ret.group(1)) 得到2018
print(ret.group(2)) 得到12
有名分組和無名分組不能混用

反向解析

先命一個名:url(r‘^publishadd133/$‘, views.publishadd,name=‘ddd‘),

在模板層:{ % url ‘ddd‘ %}

在視圖層:

   from django.shortcuts import reverse

    在視圖函數裏:

    url = reverse(‘ddd‘)

路由分發:

  1、在不同的app裏創建urls.py

  2、在總路由

      -- from django.conf.urls import include

      -- url(r‘^blog/‘, include(‘blog.urls‘)) ,

      -- url(r‘^app01/‘, include(‘app01.urls‘)) ,

  3 在不同的app的urls裏配置路由關系, 總路由 不能加結束符$(結束符)

名稱空間:

  總路由:

   url(r‘^blog/‘,include(‘blog.urls‘,namespace=‘blog‘)),

   url(r‘^app01/‘,include(‘app01.urls‘,namespace=‘app01‘)),

  app01 中的urls.py

   url(r‘^publish/$‘, views.publish,name=‘app01_test‘),

  blog 中的urls.py

   url(r‘^blogtest/$‘, views.test,name=‘test‘),

模板:

<a href="{% url ‘app01:test‘ year=2018 mounth=12 %}">點我</a>

偽靜態:

   -路由: url(r ‘ ^book / (?P<id>\d+.html) ‘, views.book),

   -訪問: http://127.0.0.1:8000/book/4.html

 要是後面少了html就找不到頁面 沒有html 的是動態頁面,有html的是靜態頁面

  

有名無名分組,反向註釋