Django: The web framework for perfectionists with deadlines.
django是python最流行的框架之一,特点是大而全,自带模板系统、优秀的ORM框架,还有完善的后台管理系统。
这次建站为了使用xadmin,考虑到其兼容性,故选择了python2.7.13,Django1.9.13(这个版本在今年上半年已经不再支持了,建议大家使用1.11LTS)
xadmin是国人开发的基于django的后台管理系统,用到了bootstrap,还有许多自带的插件(然而我没怎么研究),虽然不知道比官方的强在哪里,不过挺好用的就是了
Django settings.py配置
settings.py是django项目的配置文件,很多重要的参数都要在这里设置
DEBUG
在开发环境中,DEBUG应设置为TRUE,在404、500等页面会有详细的错误提示,同时会自动启动用于处理静态文件的中间件
ALLOWED_HOSTS
ALLOWED_HOSTS设置允许访问的ip,DEBUG = TRUE时不用管它,DEBUG = FALSE时必须配置,通常配置为'*'即可
INSTALLED_APPS & 根路径设置
INSTALLED_APPS是一个列表,收录所以需要加载的应用。在django项目中,我们自己创建的每个app自然都要加进去。
通常,我们自建的app都放在根目录下,当项目很庞大时,app的数量就会很多。这是我们可以新建一个apps的package,将app们放进去,以便于目录结构的整洁。
但这时有必要设置根路径了,下面这行代码就起了这样的作用
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
AUTH_USER_MODEL & AUTHENTICATION_BACKENDS
django自带有认证系统,但默认的user表有时并不能满足我们的需求。登陆方法也是,默认的登陆后台只能通过用户名进行登陆。这是我们就会用到这两个参数了。
AUTH_USER_MODEL = "users.UserProfile"
AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend',
)
TEMPLATES & DATABASES
django有自己默认的模板引擎,但也可以换成其他的,完全根据个人喜好。
django中默认的数据库是sqlite3,同样可以选用其他数据库,也可以启用多个数据库。比如session的存储就能用到redis或mongodb。
本地化设置
通常设置成这样即可:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
静态、媒体文件配置
STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# os.path.join(BASE_DIR, "static"),
# )
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这些变量中,两个URL是用于模板使用的,这里注意要和ROOT写成“一样的”
在DEBUG = True时,指定STATICFILES_DIRS即可配置静态文件;而在DEBUG = False时,需要这样配置urls.py文件:
from django.views.static import serve
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
]
当然,DEBUG = False即意味着生产环境,没人会这样配置的==