建工程什么的我就不说了,网上一大堆。
在这里说下一些网上的解决方法已经过时的问题吧。
事儿最多的文件当然是settings.py,我们一步一步来修改。
1.配置模板目录
settings.py中有一个叫做TEMPLATES的变量,找到'DIRS' 这个key,修改至如下(这里是放在工程目录下的templates文件夹下):
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',
],
},
},
]
2.配置数据库
setting.py中有个叫做DATABASES的变量,默认是sqlite,对于目前只用MySQL的我(也是大多数入门者们)来说,不由分说修改至如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'root',
'PASSWORD': '',
'HOST':'localhost',
'PORT':'3306',
}
}
这里我们需要用到PyMySQL才能在Python3.4中使用MySQL。安装好PyMySQL后,我们把__init__.py修改至如下:
import pymysql
pymysql.install_as_MySQLdb()
3.配置静态资源访问路径
settings.py中,加上如下代码:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS = (
('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),
('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ),
('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ),
('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ),
('lib',os.path.join(STATIC_ROOT,'lib').replace('\\','/') ),
)
STATIC_URL 指定模板文件请求的URL。在模板中以/static/css/style.css这种方式请求
STATIC_ROOT 指定静态资源的目录。在这里是工程目录下的static文件夹下
STATICFILES_DIRS 指定静态资源的目录,即static目录下,哪些为能被请求的静态资源。此处指定了static目录下5个目录为静态资源目录
Django中html模板引用外部资源时,发送的请求是直接给你run的这个server处理的,所以我们要打开urls.py,在urlpatterns里加上:
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),以确保静态资源能在模板中被请求到。