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