1. 程式人生 > 實用技巧 >django框架之轉換器的使用等相關內容-63

django框架之轉換器的使用等相關內容-63

1 django2.0版的path

1 從2.x以後,建議使用path,是一個準確路徑
2 使用正則方式,推薦使用re_path,用法跟url一模一樣

2 path轉化器

1 5個內建轉換器
'''
str,匹配除了路徑分隔符(/)之外的非空字串,這是預設的形式
int,匹配正整數,包含0。
slug,匹配字母、數字以及橫槓、下劃線組成的字串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字串,包含了路徑分隔符(/)(不能用?)
'''

2 例子
-path('login/<int:year>', views.login),
-path('login/<str:year>', views.login),
-path('login/<path:p>', views.article),
3 高階例子
-實現匹配這種路徑:http://127.0.0.1:8000/liuqingzheng/p/4444.html
-path('<str:name>/p/<int:id>.html', views.article),
-re_path(r'^(?P<name>.*?)/p/(?P<id>\d+).html$', views.login),
-url(r'^(?P<name>.*?)/p/(?P<id>\d+).html$', views.login), # url在2.x以後不建議使用



4 轉換器可以不可以在re_path中使用?不能!!!!

3 自定義轉化器(不重要)

1 寫一個類
-regex屬性:這裡寫的正則表示式就能匹配
-to_python方法
-to_url 方法

2 註冊這個類
register_converter(類名, 'lqz')

3 使用在path中更使用
path('<lqz:name>/', views.article),

4 圖書管理系統表關係(圖書管理系統)

0 表中欄位的關係
-一對一
-一對多
-多對多

1 需要有哪幾個表
-書籍表:book
-id
-name
-price
-publish

-作者:author
-id
-name
-age
-author_detail_id 1
-作者詳情:authordetail
-id
-address
-phone
#-author_id
-出版社:publish
-id
-name
-addr
-email

2 表之間的關係
-書和作者:多對多:需要建立第三張表(中間表,關係表)
-書和出版社:一對多:一對多的關係一旦確立,關聯欄位寫在多的一方
-作者和作者詳情:一對一,關聯欄位寫在誰都可以,推薦寫在查詢多的一方

3 其實 一對一的關係,是一對多+unique