1.创建虚拟环境(mkvirtualenv 虚拟环境名字)
mkvirtualenv demo02
2.安装django(==安装的版本)
pip3 install Django==2.0.3
3.检查Django是否安装成功
进入python环境
import django
django.get_version()
4.安装mysql-python
python2.7:pip install mysql-python
python3.x:pip3 insatll pymysql
5.创建Django项目
进入D盘 d: 进入虚拟环境 cd 虚拟环境名称
django-admin startproject 项目名称
6.创建应用
进入项目 cd 项目名称
python manage.py startapp 应用名称
用pycharm打开 改变解析器 file-setting-project interpreter
7.打开settings.py 修改DATABASES成为
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'mall_user',
'USER':'root',
'PASSWARD':'',
'HOST':'127.0.0.1',
'PORT':3306
}
}
NAME: 指定的数据库名,如果是 sqlite 的话,就需要填数据库文件的绝对位置
USER: 数据库登录的用户名, mysql 一般都是 root
PASSWORD:登录数据库的密码,必须是 USER 用户所对应的密码
HOST: 由于一般的数据库都是 C/S 结构的,所以得指定数据库服务器的位置,我们一般数
据库服务器和客户端都是在一台主机上面,所以一般默认都填 127.0.0.1
PORT:数据库服务器端口, mysql 默认为 3306
HOST 和 PORT 都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的
8.定义模型类
打开models.py文件
from django.db import models
Create your models here.
class UserInfo(models.Model):
username = models.CharField(max_length=30,verbose_name='账户')
psw = models.CharField(max_length=20,verbose_name='密码')
nickname = models.CharField(max_length=10,verbose_name='昵称')
portrait = models.ImageField(verbose_name='头像')
gender = models.BooleanField(verbose_name='性别')
email = models.EmailField(max_length=30,verbose_name='邮箱')
phone = models.CharField(max_length=11,verbose_name='电话号码')
age = models.IntegerField(verbose_name='年龄')
def __str__(self):
return '%d'%self.id
9.激活模型
编辑settings.py文件,将应用名称添加到INSTALLED_APPS末尾
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user'
]
注意:
(1) python3 无法正常使用 mysql 的解决办法
django 连接 mysql 默认驱动是 MySQLdb, MySQLdb 没有支持 python3 的版本在 django 项目配置文件同目录下的init.py 文件中加入以下代码:
import pymysql
pymysql.install_as_MySQLdb()
(2) python3 外键定义报错
hBook = models.ForeignKey('BookInfo')
Django2.0 下运行会提示这样的错误:�
typeError: init() missing 1 required positional argument:'on_delete'
解决办法:
hBook = models.ForeignKey('BookInfo',on_delete=models.CASCADE)
(3)生成迁移文件报错
django.db.utils.InternalError:(1049,"Unknown database 'books'")
手工创建数据库 books
10.生成迁移文件
python manage.py makemigrations
11.执行迁移
python manage.py migrate