1. 新建项目
django-admin.py startproject myblog
2. 查看项目目录结构
> tree myblog/
myblog/
├── manage.py
└── myblog
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
说明:
manage.py 是管理网站的脚本,可以使用它来启动一个简单的web服务器。
myblog 文件夹是网站配置文件夹,主要操作的文件有settings.py和urls.py。
settings.py 是工程的核心配置文件。
urls.py 是路由配置文件,可以配置URL到实际Controller的映射关系
3. 修改默认配置
- 在
settings.py
开头插入#-*- coding: utf-8 -*-
,防止中文错误。
注:所有python文件都要添加#-*- coding: utf-8 -*-
。
3.1 数据库
- 在
settings.py
中找到DATABASES
。
> vim myblog/settings.py
# 这里是 默认sqlite的配置
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
#}
#修改为pgsql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myblog', # 数据库名
'USER': 'django', # 用户名
'PASSWORD': '123', # 密码
'HOST': '127.0.0.1', # 地址
'PORT': '5432', # 端口
}
}
3.2 设置pgsql
>psql -U postgres
postgres=# CREATE USER django WITH PASSWORD '123';
postgres=# CREATE DATABASE myblog OWNER django;
postgres=# GRANT ALL PRIVILEGES ON DATABASE myblog to django;
3.3 时区
- 在
settings.py
中找到TIME_ZONE
。
TIME_ZONE = 'Asia/Shanghai' # 中国上海
3.4 MEDIA路径
- 在
settings.py
中找到MEDIA_ROOT
和MEDIA_URL
。
MEDIA 路径是用来存储上传文件的位置。
MEDIA_ROOT = 'media' # 当前项目路径下的media文件夹
MEDIA_URL = '/media/'
在项目目录下建立media文件夹与之对应。
mkdir media
3.5 STATIC路径
- 在
settings.py
中找到STATIC_ROOT
,STATIC_URL
和STATICFILES_DIRS
。
STATIC_ROOT = 'static' # 当前项目路径下的static文件夹
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
3.6 MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.locale.LocaleMiddleware',
)
3.7 LANGUAGES
gettext_noop = lambda s: s
# 使Django支持多语言选择。
LANGUAGES = (
('de', gettext_noop('German')),
('en', gettext_noop('English')),
('ja', gettext_noop('Japanese')),
('lt', gettext_noop('Lithuanian')),
('nl', gettext_noop('Dutch')),
('pl', gettext_noop('Polish')),
('pt', gettext_noop('Portuguese')),
('zh-cn', gettext_noop('Simplified Chinese')),
)
# xadmin配置文件
XADMIN_CONF = 'hellodjango.xsite'
DATE_FORMAT = 'Y-m-d'
DATETIME_FORMAT = 'Y-m-d H:i'
TIME_FORMAT = 'H:i'
4. 启动看看
cd myblog
python manage.py runserver 0.0.0.0:8000
报错:
Error loading psycopg2 module: No module named 'psycopg2'
是缺少 psycopg2
模块
解决:
pip install psycopg2
报错:Error: pg_config executable not found.
yum install -y postgresql96-devel
- 再次安装
psycopg2
成功,再次运行manage.py
也没报错
配置域名后用浏览器访问