Python大神 - Django(深層學習)-- urls配置


urls又稱路由系統

一、url 用法

1 注意寫法:
2    url(r'^form/$',views.userform,name='form_one') # 函數的寫法
3    url(r'^form/$',views.userform.as_view(),name='form_one') # 類的寫法
4    1)域名部分會被過濾掉
5    2)form前面不需要添加/,因為前序url的末尾一定會有/ ( url(r'^form/(\d{4})/$)
6    3)任何組匹配的變量,都會以字符串的形式傳遞給view(可以是一個函數,也可以是類)

二、url簡單形式(單一對應)

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

三、url正則匹配(無法把分組的串傳遞給后台)

url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive')

四、url正則匹配,(把分組的數據傳遞給后台)

利用named group來傳遞參數
url(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive')

view獲取數據
class TestView(View):
    def get(self,year,month)
        pass

year,month 就是傳遞過來的值

五、url別名

作用:無論全面的匹配字段如何變化,在html引用的別名不用變

1、url(r'^form/$',views.userform,name='form_one') # url 別名為form_one
2、html文件引用別名
{% url 'form_one' %}
3、在view中使用
from django.core.urlresolvers import reverse
return HttpResponseRedirect(reverse("index")) # 與reverse函數一起使用

六、給每個app設置一個urls.py文件(根據app對路由規則進行分類

1、在項目中的urls.py 引用:
    url(r'^appname/',include('appname.urls',namespace=app)) 
2、html文件引用別名
    {% url 'app:form_one %}  # url是內置函數
        
附:
  # 鏈接到某個數據的詳情時
  {% url 'course:coursedecs' course.id %} == {% url 'course:coursedecs' %}?course_id={{ course_id }}
            

七、django中的路由系統和其他語言的框架有所不同,在django中每一個請求的url都要有一條路由映射,這樣才能將請求交給對一個的view中的函數去處理。其他大部分的Web框架則是對一類的url請求做一條路由映射,從而是路由系統變得簡潔。

通過反射機制,為django開發一套動態的路由系統Demo: 點擊下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM