1.創(chuàng)建虛擬環(huán)境(mkvirtualenv 虛擬環(huán)境名字)
mkvirtualenv demo02
2.安裝django(==安裝的版本)
pip3 install Django==2.0.3
3.檢查Django是否安裝成功
進入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項目
進入D盤 d: 進入虛擬環(huán)境 cd 虛擬環(huán)境名稱
django-admin startproject 項目名稱
6.創(chuàng)建應用
進入項目 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: 指定的數(shù)據(jù)庫名约计,如果是 sqlite 的話摄欲,就需要填數(shù)據(jù)庫文件的絕對位置
USER: 數(shù)據(jù)庫登錄的用戶名蕾羊, mysql 一般都是 root
PASSWORD:登錄數(shù)據(jù)庫的密碼,必須是 USER 用戶所對應的密碼
HOST: 由于一般的數(shù)據(jù)庫都是 C/S 結構的嚎花,所以得指定數(shù)據(jù)庫服務器的位置,我們一般數(shù)
據(jù)庫服務器和客戶端都是在一臺主機上面呀洲,所以一般默認都填 127.0.0.1
PORT:數(shù)據(jù)庫服務器端口紊选, 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'")
手工創(chuàng)建數(shù)據(jù)庫 books
10.生成遷移文件
python manage.py makemigrations
11.執(zhí)行遷移
python manage.py migrate