3、django之配置文件、静态文件与路由

3.1配置文件(settings.py)

3.2静态文件使用

3.2.1配置静态文件的访问

# 静态⽂件访问的路由

STATIC_URL = '/static/'

# 配置静态⽂件加载⽬录

STATICFILES_DIRS = [

os.path.join(BASE_DIR, 'static_files')

]

3.2.2准备静态文件1

项目根路径/静态文件夹/静态文件

项目根路径/static_files/index.html

http://127.0.0.1:8000/static/index.html

3.2.3准备静态文件2

项目根路径/static_files/goods/detail.html

http://127.0.0.1:8000/static/goods/index.html

3.3路由的使用

3.3.1django解析路由的流程

3、django之配置文件、静态文件与路由

 

 

3.3.2路由定义的位置

(1)总路由+子路由

①总路由:url(r'^users/', include('users.urls')),

②子路由:url(r'^index/$', views.index),

(2)总路由:url(r'^users/index/$', views.index),

(3)子路由

①总路由:url(r'^', include('users.urls')),

②子路由:url(r'^users/index/$', views.index),

3.3.3路由解析的顺序

(1)urlpatterns里面的路由解析顺序(自上而下)

urlpatterns = [

# url(r'^路径$', views.视图),

url(r'^index/$', views.index, name='index'),

# 以下代码演示路由⾃上⽽下匹配规则

# url(r'^say', views.say), # 这个会拦截下⾯的路由

# url(r'^sayhello', views.say_hello),

url(r'^say$', views.say), # 定义路由要指明开始和结束

url(r'^sayhello$', views.say_hello),

]

(2)注意:子路由需要有开头和结尾

3.3.4路由命名空间和reverse反解析

(1)定义命名空间

url(r'^users/', include('users.urls', namespace='users')),

url(r'^index/$', views.index, name='index'),

(2)使用反向解析

'users/index/'

url = reverse('users:index')

3.3.5路由以斜线结尾说明

(1)正则匹配路由结尾带斜线

如果用户输入的url路径没有斜线,当找不到该路由时,浏览器会自动的重定向到带斜线的路由

(2)正则匹配路由结尾不带斜线

如果用户输入的url路径有斜线,直接报404错误