django 1.9.7 备忘
来源:互联网 发布:php默认编码方式 编辑:程序博客网 时间:2024/06/04 18:04
1. 使用Mysql
settings.py
DATABASES = { 'default': {}, 'database1': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name_1', 'USER': 'username_1', 'PASSWORD': 'password_1', 'HOST': 'host_1', 'PORT': 'port_1', }, 'database2': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name_2', 'USER': 'username_2', 'PASSWORD': 'password_2', 'HOST': 'host_2', 'PORT': 'port_2', },}
2. 多数据库联用
settings.py
DATABASE_APPS_MAPPING = { 'app_name': 'database_name',}DATABASE_ROUTERS = [ 'project_name.database_router.DatabaseRouter',]
database_router.py
from django.conf import settingsDATABASE_MAPPING = settings.DATABASE_APPS_MAPPINGclass DatabaseRouter(object): def db_for_read(self, model, **hints): if model._meta.app_label in DATABASE_MAPPING: return DATABASE_MAPPING[model._meta.app_label] return None def db_for_write(self, model, **hints): if model._meta.app_label in DATABASE_MAPPING: return DATABASE_MAPPING[model._meta.app_label] return None def allow_relation(self, obj1, obj2, **hints): db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label) db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label) if db_obj1 and db_obj2: if db_obj1 == db_obj2: return True else: return False return None def allow_syncdb(self, db, model): if db in DATABASE_MAPPING.values(): return DATABASE_MAPPING.get(model._meta.app_label) == db elif model._meta.app_label in DATABASE_MAPPING: return False return None
3. 部署(nginx)
3.1 安装nginx, supervisor, uwsgi
ubuntu
sudo apt-get install python-dev nginxsudo pip install supervisorsudo pip install uwsgi
3.2 测试uwsgi
uwsgi --http :8001 --chdir /path/to/project --home=/path/to/env --module project.wsgi
–home 指定虚拟环境,如果没有可以省略. 这时在浏览器输入localhost:8001/app_name应该可以看到相应app的首页内容.
3.3 用supervisor管理uwsgi
导出supervisor的默认配置文件
sudo echo_supervisord_conf > /etc/supervisord.conf
uwsgi.ini
[uwsgi]socket = /tmp/django.sockchdir=django_project_dirwsgi-file = django_project_name/wsgi.pytouch-reload=django_project_dir/reloadprocesses = 2threads = 4chmod-socket = 664chown-socket=tu:www-data
在supervisord.conf末尾添加
[program:django_project_name]command=/path/to/uwsgi --ini uwsgi_dir/uwsgi.inidirectory=django_project_dirstartsecs=0
启动supervisor
sudo supervisord -c /etc/supervisord.conf
启动(重启,关闭)supervisor管理的程序
sudo supervisorctl -c /etc/supervisord.conf start(restart, stop) django_project_name
3.4 配置nginx
sudo vim /etc/nginx/sites-available/django_project_name.conf
server { listen 8001; server_name www.django_project_name.com; charset utf-8; client_max_body_size 75M; location /media { alias /path/to/project/media; } location /static { alias /path/to/project/static; } location / { uwsgi_pass unix:///tmp/django_project_name.sock; include /etc/nginx/uwsgi_params; }}
激活网站
sudo ln -s /etc/nginx/sites-available/zqxt.conf /etc/nginx/sites-enabled/django_project_name.conf
测试配置语法问题
sudo service nginx configtest
重启 nginx 服务器
sudo service nginx reloadorsudo service nginx restart
这时如果配置都正确的话就可以在浏览器里输入localhost:8001/app_name来访问相应app首页.
可以在/etc/hosts文件里加入
127.0.0.1 www.django_project_name.com
这样就可以用 www.django_project_name.com:8001/app_name 的形式来访问了
参考
自强学堂 django部署(nginx)
0 0
- django 1.9.7 备忘
- django备忘
- django备忘
- django 备忘
- Django中的查询(备忘)
- Django 数据库操作备忘
- django nginx 学习备忘
- Django + application cache 配置备忘
- django数据库操作参数备忘
- Suselinux下Django开发备忘
- linux/django/httpd/mysql 相关命令备忘
- DJANGO基础学习之模板过滤备忘
- Debian环境 Python + Django + Nginx + uWSGI + MySQL 配置备忘
- 容器化Django+Redis+HAProxy应用栈搭建备忘
- pkg_resources.VersionConflict: (Django 1.9.7
- 200-10-7备忘
- 创业-7点备忘
- OpenGL备忘7---Camera
- Leetcode Intersection of Two Linked Lists
- 如何做好一名实习生
- Hilbert各种概念一览
- myeclipse导入别人的项目乱码问题
- 王朝 第十六周 逆序输出
- django 1.9.7 备忘
- C#代表
- Linux下串口编程基础
- hadoop下利用庖丁分词实现分词+wordcount的环境配置
- 关于两个变量值的三种方法
- netty的引导程序ServerBootStrap
- MySQL中的日期时间函数
- 启动结束进程;PROCESS_INFORMATION;CreateProcess;ZeroMemory;TerminateProcess;ShellExecute
- 王朝 第十六周 计算字符长度