#settings.py文件没有过多的解译,有问题可以留言或者加QQ及微信群讨论。
在我们安装完django后,会有一个可执行文件django-admin.py。它是一个命令行工具,可以执行一些管理任务,比如创建Django项目。
在django里创建这些的动作还是比较简单的。如下为创建工程以及app。
django-admin.py startproject liuxin 创建了一个工程 名为置当前liuxin
python manage.py startapp idc 在liuxin工程下创建一个app名为idc
当然创建很简单,现在简单的说下配置。当我们创建完工程后,在这个liuxin项目里会有一个manage.py文件,它是对django-admin.py的简单包装,它在创建每个Django project时都会自动添加在项目目录下的,它的功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTINGS_MODULE环境变量为当前project的setting.py文件。
django-admin.py是调用django.core.management来执行命令:
#!/usr/bin/env python
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
excute_from_command_line()函数会根据命令行参数解析出命令的名称,根据命令名称调用相应的Command执行命令。
manage.py还有一些相关的命令以后随着应用模块和数据库的应用会介绍到。
在工程liuxin下还会有一个名liuxin的文件夹,也可以认为是liuxin这个项目的主配置文件夹。当创建liuxin这个项目后,这个文件夹里会的这以几个文件生成。 __init__.py:python特性,可以是空文件,只是表明这个文件夹是一个可以导入的包。
settings.py:配置文件,主要是数据库信息、加载模块的信息。
url.py:URL配置文件,指定函数与URL的映射关系。
wsgi.py:暂时不用了解,开发都是用Django自带的测试服务器,用nginx/apahce+wsgi启动Django时才用得上。
创建完工程后,就可以启动自带的服务器来调试了
python manage.py runserver
python manage.py runserver 8080 #修改端口号,默认的是8000
python manage.py runserver 0.0.0.0:8000 #服务器监听任意IP的8000端口
以下是settings文件的内容,url.py这里暂时先不说,后面会介绍到。
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ‘=$)9pp3oskd#n8+26=(-jhjj65+=u#9(h&e87k70abhfy#xnsg‘
TEMPLATE_LOADERS = (
‘django.template.loaders.filesystem.Loader‘,
‘django.template.loaders.app_directories.Loader‘,
# ‘django.template.loaders.eggs.Loader‘,
)
# SECURITY WARNING: don‘t run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
DEBUG_TOOLBAR_PATCH_SETTINGS = False
ALLOWED_HOSTS = []
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don‘t forget to use absolute paths, not relative paths.
os.path.join(BASE_DIR, ‘templates‘).replace(‘\\‘,‘/‘),
‘/Library/Python/2.7/site-packages/debug_toolbar/templates‘,
)
# Application definition
INSTALLED_APPS = (
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘debug_toolbar‘,
‘debugtools‘
‘idc‘
)
MIDDLEWARE_CLASSES = (
‘django.contrib.sessions.middleware.SessionMiddleware‘,
‘django.middleware.common.CommonMiddleware‘,
# ‘django.middleware.csrf.CsrfViewMiddleware‘,
# ‘django.middleware.csrf.CsrfResponseMiddleware‘,
‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
‘django.contrib.auth.middleware.SessionAuthenticationMiddleware‘,
‘django.contrib.messages.middleware.MessageMiddleware‘,
‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
‘debug_toolbar.middleware.DebugToolbarMiddleware‘,
)
ROOT_URLCONF = ‘liuxin.urls‘
# INTERNAL_IPS = (‘127.0.0.1‘,)
INTERNAL_IPS = (‘0.0.0.0‘,)
WSGI_APPLICATION = ‘liuxin.wsgi.application‘
# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.sqlite3‘,
‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
}
}
# DATABASES = {
# ‘default‘: {
# ‘ENGINE‘: ‘django.db.backends.mysql‘,
# ‘NAME‘: ‘liutest‘,
# ‘USER‘: ‘root‘,
# ‘PASSWORD‘: ‘aaaaaa‘,
# ‘HOST‘:‘localhost‘,
# ‘PORT‘:‘3306‘,
# }
# }
# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/
LANGUAGE_CODE = ‘en-us‘
#TIME_ZONE = ‘UTC‘
TIME_ZONE = ‘Asia/Shanghai‘
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
STATIC_ROOT = ‘‘
STATIC_URL = ‘/static/‘
# STATIC_ROOT = os.path.join(PROJECT_ROOT,‘static‘)
STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static‘).replace(‘\\‘,‘/‘),
)
这里面有模板的配置、数据库的配置、添加新的应用、中间件、表态文件路径等,建议先和默认文件对比下,我这里都是已经改了一些的了,比如时区。
django之创建工程及简单的配置
原文:http://blog.chinaunix.net/uid-10915175-id-5060795.html