安装
pip install django
本文Django版本使用3.0.1
创建项目
用 Django 自带的脚手架工具 django-admin 创建项目
django-admin startproject 项目名
生成项目文件
项目名
├── 项目名 // 项目全局文件目录
│ ├── __init__.py
| ├── asgi.py
│ ├── settings.py // 全局配置
│ ├── urls.py // 全局路由
│ └── wsgi.py // WSGI服务接口
└── manage.py // 项目管理脚本
启动后台服务(开发)
python manage.py runserver ip:port
# 其中ip和port可以自主填写, 默认localhost:8000
通过浏览器访问localhost:8000即可访问
绑定数据库
在settings.py
修改DATABASES
绑定MySql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
Django默认使用的MySQLdb不支持python3, 推荐使用pymysql, 需在
settings.py
加上:import pymysql pymysql.install_as_MySQLdb()
在数据库中建表
python manage.py makemigrations
python manage.py migrate
创建超级管理员
python manage.py createsuperuser
依次输入django后台的超级管理员用户名、邮箱和密码,即可生成超级管理员账户
创建自定义app
python manage.py startapp 自定义app名称
生成app文件如下
自定义app名称 // 应用目录
├── __init__.py // 初始化模块
├── admin.py // 后台管理配置
├── apps.py // 应用配置
├── migrations // 数据库迁移文件目录
│ └── __init__.py // 数据库迁移初始化模块
├── models.py // 数据模型
├── tests.py // 单元测试
└── views.py // 视图
将自定义应用加入settings.py
的INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'自定义app名称',
]
在自定义app项目里创建urls.py
, 绑定路由到全局urls.py
, 这样访问ip:port/自定义
即可访问指定视图
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('自定义/', include('自定义app名称.urls')),
]
坑
访问后台报错
解决方案: 在setting.py
的ALLOWED_HOSTS
添加*
# setting.py文件
ALLOWED_HOSTS = ['*'] #在这里请求的host添加了*
请求资源报错
解决方案: 收集静态文件到 static 目录下
python manage.py collectstatic
绑定MySQL坑
MySQLdb不支持Python3
Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此将MySQL驱动设置为pymysql
django 2.2版本或以上对MySQLdb版本有要求
- 解决方案1: django使用2.2以下版本, 如2.1.4
- 解决方案2: 注释django代码中对MySQLdb版本控制的报错
- 到python环境下django包的路径:
./lib/python3.7/site-packages/django/db/backends/mysql
- 注释掉
base.py
的37行:
- 到python环境下django包的路径: