web開發python第二課 url路由
阿新 • • 發佈:2019-01-05
一、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是子路由表