Django之反向生成url
阿新 • • 發佈:2017-11-16
pattern archive class view response lai alt urls.py文件 request
說明:
通過反向生成,可以實現通過models中的表名、app名等靈活生成相應的url路徑。
首先介紹一下Django的url
1.django項目文件中的settings.py中
1 ROOT_URLCONF = ‘CRM_project.urls‘
設置了瀏覽器訪問該項目都將從CRM_project目錄下的urls文件中定制的url路徑訪問。
2.Django默認設置的url在項目CRM_project目錄下的urls.py文件中。
from django.conf.urls import url,include from django.contrib import admin urlpatterns= [ url(r‘^admin/‘, admin.site.urls), ]
這個url路由的意義就是,通過正則匹配用戶瀏覽器訪問的url地址,然後對應一個view視圖函數,
發給視圖函數一個request,視圖函數會返回一個response給瀏覽器。
1 urlpatterns = [ 2 url(r‘^articles/([0-9]{4})/([0-9]{2})/$‘, views.month_archive), 3 url(r‘^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$‘, views.article_detail), 4 url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$可以使用命名的正則表達式組來捕獲URL 中的值並以關鍵字 參數傳遞給視圖。 通過圓括號可以進行位置傳參,通過有名分組的方式可以進行關鍵字傳參。 在Python 正則表達式中,命名正則表達式組的語法是(?P<name>pattern),其中name 是組的名稱,pattern 是要匹配的模式。‘, views.month_archive), 5 url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$‘, views.article_detail), 6 7 ]
1# urls.py 2 # 替換index的url 3 url(r‘^$‘, views.index, {‘string‘: ‘Hello World!‘}) 4 5 # views.py 6 def index(request, string): 7 return HttpResponse(string, ‘text/plain‘)
可以通過在路由表中寫一個字典來給視圖函數傳參。
ps:
application/xml 、 text/xml、text/html、text/plain的區別
1、text/html是html格式的正文
2、text/plain是無格式正文
3、text/xml忽略xml頭所指定編碼格式而默認采用us-ascii編碼
4、application/xml會根據xml頭指定的編碼格式來編碼。
Url的命名空間
Django之反向生成url