1. 程式人生 > >web開發python第二課 url路由

web開發python第二課 url路由

一、Django中的app

1、Django中的一個APP就是一個應用的意思

2、專案可以包含多個app(多個應用)

3、一個專案可以對應一個網站(生活服務類網站)

4、一個app對應網站的一個應用(二手交易、家政服務)

二、建立一個app

執行命令   python manage.py startapp dan  # da 是app的名字

三、http請求處理

通過如下網址獲取所有學生資訊

http://localhost/student

具體過程如下:

1、請求傳送到後臺

2、wsgi server 傳遞給django框架

3、Django框架檢視路由表

4、根據路由表配置,呼叫相應的函式(方法)處理

四、定義訊息處理函式

1、修改檔案 main/views.py

studentTable = {
    'zhangsan':{
        'loginname':'zhangsan',
'name':u'張三',
'age':16,
},
'lisi':{
        'loginname':'wanger',
'name':u'李四',
'age':18,
},
'xudandan':{
        'loginname':'xu',
'name':u'徐',
'age':23,
},
}

def show_all_students(request):
    allName = [one['name'
] for one in studentTable.values()] #列表生成式 response = u''' <!DOCTYPE html> <html><head><meta charset="UTF-8"></head> <body>%s</body></html> '''% u','.join(allName) return HttpResponse(response)

定義好函式後,還要在總路由表中配置下

urlpatterns = [
    url(r'^admin/'
, admin.site.urls), url(r'^student$',views.show_all_students),

httpResponse預設是UTF-8編碼,如果傳遞unnicode物件會被編碼成UTF-8格式,入口的引數是unnicode物件,返回的響應也是unnicode物件,django框架把http請求解碼為request物件,處理完後返回的東西被框架編碼成http響應的訊息,框架解決編解碼的問題,我們只需要針對這些物件進行操作

五、url子路由表

1、總路由表用 include 包含子路由表

from django.conf.urls import url,include
from django.contrib import admin
from django.conf.urls.static import static
from dan import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
url(r'^students/', include('dan.urls')),
2、先在app目錄中建立檔案 urls.py ,寫出子路由表

3、然後修改總路由表文件,包含子路由表文件

子路由表

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^show$',views.show_all_students),
url(r'^show2$',views.show_all_students2),
]
http://localhost/students/show  students是總路由表,show是子路由表