从零到一搭建Django
2019-05-10 本文已影响0人
无处安放的躁动
环境现状
- python3.6.5
- django
- mysql5.6
pyenv 安装
# 安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel git gcc
# 配置pyenv
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
# 配置py虚拟环境
git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
exec $SHELL
# 查看可以安装版本
pyenv install --list
# 安装python版本
pyenv install -v 3.6.5
#创建版本
pyenv virtualenv 3.6.5 env365
#激活该版本
pyenv activate env365
#离开该版本
pyenv deactivate
Django安装
# 激活环境变量
pyenv activate
pip install django mysqlclient
# 查看django版本
python -m django --version
django-admin startproject myblog
cd myblog
django-admin startapp users
docker安装mysql数据库
使用docker-compose -d up . 启动
vim docker-compose.yml
version: '3.3'
services:
lwmysql:
environment:
MYSQL_ROOT_PASSWORD: 123456
image: mysql:5.6
restart: always
volumes:
- /data/mysql/data/:/var/lib/mysql/
- /data/mysql/my.cnf:/etc/my.cnf
ports:
- 3306:3306
container_name: mysql5.6
修改配置文件
ALLOWED_HOSTS = ['dev.james.com','127.0.0.1']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users',
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'JamesDevOps',
'PASSWORD':'123456',
'USER': 'root',
'HOST':'127.0.0.1',
'PORT':'3306',
}
}
启动Django
在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,
比如0001_initial.py, 但是这个改动还没有作用到数据库文件
python manage.py migrate
将该改动作用到数据库文件,比如产生table之类
#
python manage.py makemigrations
#
python manage.py migrate
#创建超级用户
python manage.py createsuperuser
#运行web
python manage.py runserver 0.0.0.0:8000
nginx 代理
server {
listen 80;
server_name dev.james.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
root /opt/Django/myblog;
index index.html;
}
# location ~ ^/(static)/ {
# root /root/webvue/;
# }
}
初步搭建完成
