ttsx2
2 day
项目基本设置
include的作用
每当Django遇到 include()
时,它将截断匹配的URL,并把剩余的字符串发往包含的URLconf作进一步处理。
继续看这个例子,这里就是被包含的URLconf mysite.blog.urls
:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^(\d\d\d\d)/$', 'mysite.blog.views.year_detail'),
urlpatterns = patterns('',
(r'^weblog/', include('mysite.blog.urls')),
/weblog/2007/
:在第一个URLconf中,模式 r'^weblog/'
被匹配。 因为它是一个 include()
,Django将截掉所有匹配的文本,在这里是 'weblog/'
。URL剩余的部分是 2007/
, 将在 mysite.blog.urls
这个URLconf的第一行中被匹配到。 URL仍存在的部分为 2007/
,与第一行的 mysite.blog.urls
URL设置相匹配。
namespace的作用
然后在view和templates中使用app_name:name
,此时就算有多个app中都有名为 index 的 name 也不会有问题了
https://www.jianshu.com/p/3dfd05c6e9d3
这个是我想要的:https://blog.csdn.net/weixin_30751947/article/details/101636962
stark
https://www.cnblogs.com/smallmars/p/8657094.html
1项目基本设置
1)应用设置
我们根据项目模块,创建了四个应用并全部置于apps包下:cart购物车、goods商品、order订单、user用户。
它们均需在settings里进行注册:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 下面是一些自定义添加的第三方应用和项目应用
'tinymce', # django-tinymce 富文本编辑器
'haystack', # 全文检索的框架
# 'djcelery', # 将耗时的程序放到celery中执行
# 'celery_tasks',
# 项目应用
'apps.cart', # 购物车 cart
'apps.goods', # 商品
'apps.order', # 订单
'apps.user', # 用户
)
2) 模板路径配置(有必要吗?为什么没设置过)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 配置模板文件路径
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
3)静态文件配置
# 配置静态文件目录
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
4)URLconf根文件配置
ROOT_URLCONF = 'dailyfresh.urls'
5)后台管理本地化语言配置
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
其他settings文件配置会在开发模块功能中遇到时再添加配置。
6)dailyfresh.urls配置
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^search', include('haystack.urls')), # 全文检索框架
url(r'^tinymce/', include('tinymce.urls')), # 富文本编辑器url
url(r'^user/', include('apps.user.urls', namespace='user')), # 用户模块 user.urls
url(r'^cart/', include('apps.cart.urls', namespace='cart')), # 购物车模块
url(r'^order/', include('apps.order.urls', namespace='order')), # 订单模块
url(r'^', include('apps.goods.urls', namespace='goods')), # 商品模块
]
可以看到,我们将网页首页默认放在了goods模块路径下,其他模块URL路径均与其模块名相同。这样分解URL配置,有利于各模块的URL管理。但需注意,URL层级不能过长,一般最多控制在3级左右。