参考文章:Django 3.1 官方教程
快速安装指南(环境部署)
主要分以下步骤:
- 安装 Python 3.x.x(Python 3.8.6)
- 安装 Django(Django 3.1)
安装 Python
安装 Python 使用 pyenv
安装即可。
1 | pyenv install -v 3.8.6 |
创建 django 项目虚拟环境
关于项目虚拟环境,这里使用 pyenv 的插件 pyenv-virtualenv 管理,具体的安装方式此处略过;
1 | pyenv virtualenv 3.8.6 django |
切换到 django 环境,安装 Django
使用 pip install django
即可自动安装最新版的 Django;
1 | pyenv active django |
常用操作指令
创建项目
1 | django-admin startproject mysite |
启动项目
1 | python manage.py runserver |
创建应用
1 | python manage.py startapp polls |
创建模型迁移
1 | python manage.py makemigrations polls |
查看迁移SQL语句
1 | python manage.py sqlmigrate polls 0001 |
执行迁移SQL语句
1 | python manage migrate |
创建管理员账号
1 | python manage.py createsuperuser |
项目目录及文件说明
在 Django 的哲学中,有两个重要的概念:Project
和 App
- Project: 是配置和应用程序的集合。一个项目可以由多个应用程序或一个应用程序组成。如果没有一个 Project,就无法运行 Django 应用程序;
- App: 是一个可以完成某件事情的 Web 应用程序。一个应用程序通常由一组 models,views,templates,tests 组成;
项目 settings.py 内容说明
mysite/settings.py
是包含了 Django 项目设置的 Python 模块
应用 INSTALLED_APPS 设置项
这个设置项包括了会在项目中启用的所有 Django 应用。通常,INSTALLED_APPS 默认包括了以下 Django 的自带应用:
- django.contrib.admin: 管理员站点;
- django.contrib.auth: 认证授权系统;
- django.contrib.contenttypes: 内容类型框架;
- django.contrib.sessions: 会话框架;
- django.contrib.messages: 消息框架;
- django.contrib.staticfiles: 管理静态文件的框架;
这些应用被默认启用时为了给常规项目提供方便。
数据库 DATABASES 设置项
要想设置 Django 使用 MySQL 引擎,需要安装 mysqlclient
,此处也是使用 pip
安装;
1 | pip install mysqlclient |
安装 mysqlclient 过程可能遇到的问题:
找不到 my_config 文件:
1
2
3
4
5
6# 苹果系统
brew install mysql-connector-c
ln -s /usr/local/Cellar/mysql-client/8.0.19/bin/mysql_config /usr/bin/mysql_config
# CentOS
yum install mysql-devel找不到 _ctypes 模块
1
2
3
4# CentOS 系统
yum install libffi-devel
# Ubuntu 系统
sudo apt-get install libffi-dev
设置数据库使用 MySQL
- 配置项目使用 MySQL 数据库,项目目录下的 settings.py 文件
1
2
3
4
5
6
7
8
9
10DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'wanwu',
'PASSWORD': 'xxxxxx'
}
}
Django 中与数据库有关的命令
- migrate: 在数据库中创建定义的模型的数据表;
- makemigrations: 为模型的变更生成迁移文件;