项目环境:
本地:windows + pycharm
remote: linux + django + mysql + …
mkvirtualenv -p /usr/bin/python3.6 virtualenv_name
1) linux中安装django
pip install django==2.1.10
2) linux中创建django项目
创建一个文件夹,cd进去
django-admin startproject project_name
3) 本地pycharm创建项目
配置远程解释器(setting --> project interpreter)
配置远程项目路径:虚拟机中项目根目录路径 (deployment --> configuration)
设置同步配置 (deployment --> options)
下载代码
ALLOWED_HOSTS = ['*'] # 允许所有IP访问
在项目根目录下创建模板文件包templates.
settings.py中设置TEMPLATES 路径
'DIRS': [os.path.join(BASE_DIR, 'templates')],
create database db_name charset=utf8mb4;
2)创建user,授权
create user 'user_name'@'%' identified by 'your_password';
grant all privileges on db_name.* to 'user_name'@'%';
考虑安全问题,最好把user设置为@‘localhost’
3)settings.py中配置数据库参数
方法一:直接在settings.py中写死
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'user_name',
'PASSWORD': 'your_password',
'HOST': '127.0.0.1', # 自行修改
'PORT': '3306',
}
}
方法二(推荐):创建一个文档储存数据库信息,在settings.py中引用
在根目录创建文件夹utils
在utils中创建文件夹db
在db中新建文件(file) db.cnf
在db.cnf中写入数据库信息
[client]
database = db_name
user = user_name
password = your_password
host = your_ip
port = 3306
default-character-set = utf8
settings.py中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': 'utils/db/db.cnf', # 数据库配置文件路径
}
}
}
如果安装PyMySQL : pip install PyMySQL
在init.py中设置
# import pymysql
# pymysql.install_as_MySQLdb()
如果安装mysqlclient
#更新
sudo apt-get update
sudo apt-get install python3-pip
# 解决mysql_config not found,安装依赖库
sudo apt-get install libmysqld-dev
# 安装mysqlclient
pip3 install mysqlclient==1.3.9 # 最新版本不兼容
4) 检查环境中是否安装了redis client
redis-cli
settings.py中配置:
CACHES = {
# 默认缓存引擎,信息存储在index为0的数据库
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
# 将session信息储存在Index为1的数据库
"session": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
# session存储缓存设置
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = 'session'
要使用redis管理缓存还需要安装插件:
pip install django-redis
根目录下创建logs包
settings.py中配置:
LOGGING = {
# 版本
'version': 1,
# 是否禁用已存在的日志器
'disable_existing_loggers': False,
# 格式
'formatters': {
# 详细版
'verbose': {
'format': '{levelname} {asctime} {module} {lineno:d} {message}',
'style': '{',
},
# 简单版
'simple': {
'format': '{levelname} {module} {lineno:d} {message}',
'style': '{',
},
},
# 过滤器
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
# 处理器,输出到哪里
'handlers': {
# 输出到控制台的设置
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
# 输出到文件的设置
'file':{
'level': 'INFO',
# 这个handler可以记录一组日志文件
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs/tz_django.log'),
# 单个日志文件最大字节数
'maxbytes': 300*1024*1024,
# 日志文件个数
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': {
'django': {
'handlers': ['console', 'file'],
'level': 'INFO', # 日志器接受的最低级别
'propagate': True,
},
},
}
settings.py
LANGUAGE_CODE = 'zh-hans' # 中文
TIME_ZONE = 'Asia/Shanghai' # 时区
在项目根目录创建static包
settings.py中static_url后添加
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
在根目录下创建一个package apps,存放所有app
linux CD到 ~/apps
执行 上级目录的manage.py,在apps中创建app
python ../manage.py startapp app_name
4)创建好后下载到本地
5) 优化。
import sys
# 在BASE_DIR后
# 把刚才创建好的apps文件目录加入到sys.path中,加快检索速度
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
6) 在INSTALLED_APPS中注册