macOS Django 项目开发 环境准备

Author: Ju4t

安装pyhon3

sudo brew install python3

虚拟环境

# 安装
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

# mkvirtualenv 无法使用就 设置环境变量
# 创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
# 在~/.bashrc中添加行:
export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
# 运行
source ~/.bashrc

mkvirtualenv -p python3 py3_django # 创建虚拟环境
workon py  # tab tab 查看虚拟环境
work py3_django # 切换虚拟环境
deactivate # 退出虚拟环境
rmvirtualenv py3_django  # 删除虚拟环境

安装 django

# 公网
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host https://mirrors.aliyun.com

# ECS
pip config set global.index-url https://mirrors.cloud.aliyuncs.com/pypi/simple/
pip config set install.trusted-host mirrors.cloud.aliyuncs.com

pip3 install Django  //在虚拟环境下安装 django,不加sudo
pip3 list  //查看已安装的工具包

创建项目

django-admin startproject Project
cd Project
python manage.py startapp Book

启动服务

python manage.py runserver

数据库MySQL

安装

pip install PyMySQL

配置

project/init.py

import pymysql

pymysql.install_as_MySQLdb()

project/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': env.get('DB_HOST', 'localhost'),
        'PORT': env.get('DB_PORT', 3306),
        'NAME': env.get('DB_NAME','test'),  # 字符集:utf8mb4 排序规则:utf8mb4_unicode_ci (支持表情)
        'USER': env.get('DB_USER','root'),
        'PASSWORD': env.get('DB_PASS', 'CHENGEME'),
        # 'CONN_MAX_AGE': 60,
        'options': {'init_command': 'SET storage_engine=INNODB, sql_mode="STRICT_TRANS_TABLES"', 'charset': 'utf8mb4'}
    },
}

定义模型

class Comment(models.Model):
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    avatar = models.CharField(max_length=200, null=True, blank=True)
    name = models.CharField(max_length=20)
    time = models.DateTimeField('评价时间', auto_now=True)
    content = models.CharField(max_length=200)

生成模型及迁移数据

python3 manage.py makemigrations && python3 manage.py migrate

# 分库迁移
# python3 manage.py makemigrations && python3 manage.py migrate --database=item

创建超级管理员

python3 manage.py createsuperuser

安装requirements

pip install -r requirements.txt

收集静态文件、合并js css

python manage.py collectstatic
python manage.py compress