1.創(chuàng)建虛擬環(huán)境(mkvirtualenv 虛擬環(huán)境名字)
mkvirtualenv demo02
2.安裝django(==安裝的版本)
pip3 install Django==2.0.3
3.檢查Django是否安裝成功
進(jìn)入python環(huán)境
import django
django.get_version()
4.安裝mysql-python
python2.7:pip install mysql-python
python3.x:pip3 insatll pymysql
5.創(chuàng)建Django項(xiàng)目
進(jìn)入D盤 d: 進(jìn)入虛擬環(huán)境 cd 虛擬環(huán)境名稱
django-admin startproject 項(xiàng)目名稱
6.創(chuàng)建應(yīng)用
進(jìn)入項(xiàng)目 cd 項(xiàng)目名稱
python manage.py startapp 應(yīng)用名稱
用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: 指定的數(shù)據(jù)庫名,如果是 sqlite 的話,就需要填數(shù)據(jù)庫文件的絕對(duì)位置
USER: 數(shù)據(jù)庫登錄的用戶名, mysql 一般都是 root
PASSWORD:登錄數(shù)據(jù)庫的密碼,必須是 USER 用戶所對(duì)應(yīng)的密碼
HOST: 由于一般的數(shù)據(jù)庫都是 C/S 結(jié)構(gòu)的,所以得指定數(shù)據(jù)庫服務(wù)器的位置,我們一般數(shù)
據(jù)庫服務(wù)器和客戶端都是在一臺(tái)主機(jī)上面,所以一般默認(rèn)都填 127.0.0.1
PORT:數(shù)據(jù)庫服務(wù)器端口, mysql 默認(rèn)為 3306
HOST 和 PORT 都可以不填,使用默認(rèn)的配置,但是如果你有更改默認(rèn)配置的話,就需要填入更改后的
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='電話號(hào)碼')
age = models.IntegerField(verbose_name='年齡')
def __str__(self):
return '%d'%self.id
9.激活模型
編輯settings.py文件,將應(yīng)用名稱添加到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 默認(rèn)驅(qū)動(dòng)是 MySQLdb, MySQLdb 沒有支持 python3 的版本在 django 項(xiàng)目配置文件同目錄下的init.py 文件中加入以下代碼:
import pymysql
pymysql.install_as_MySQLdb()
(2) python3 外鍵定義報(bào)錯(cuò)
hBook = models.ForeignKey('BookInfo')
Django2.0 下運(yùn)行會(huì)提示這樣的錯(cuò)誤:?
typeError: init() missing 1 required positional argument:'on_delete'
解決辦法:
hBook = models.ForeignKey('BookInfo',on_delete=models.CASCADE)
(3)生成遷移文件報(bào)錯(cuò)
django.db.utils.InternalError:(1049,"Unknown database 'books'")
手工創(chuàng)建數(shù)據(jù)庫 books
10.生成遷移文件
python manage.py makemigrations
11.執(zhí)行遷移
python manage.py migrate