django基本流程(1)
一、建立專案
1.1、首先安裝Django庫,pip install django
1.2、在合適的位置建立一個目錄,開啟黑屏終端,進入上一步建立的目錄
1.3、輸入: django-admin startproject 專案名
1.4、目錄層級說明:manage.py 一個命令列工具,可以和django互動
__init__.py 說明這是一個包
settings.py 配置檔案
urls.py 專案的url宣告
wsgi.py 專案與wsgi相容的web伺服器入口(不知道幹什麼用的)
二、設計表結構
以學生表和班級表為例:(此時資料庫中還沒有生成表,生成表應該在第7步中,主要看設計的表結構)
三、配置資料庫
3.1、在settings.py檔案中,在DATABASES中進行資料庫配置
3.2、配置mysql
3.2.1、python3.x安裝的是PyMysql
3.2.2、在__init__.py檔案中寫入
import pymysql
pymysql.install_as_MySQLdb()
3.2.3、格式
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 資料庫名, 'USER':使用者名稱, 'PASSWORD':密碼, 'HOST':資料庫伺服器ip, 'PORT':埠號, } }
四、建立應用
4.1、在一個專案中可以建立多個應用,每個應用進行一種業務處理
4.2、開啟命令視窗進入建立的專案目錄下的project
4.3、執行:python manage.py startapp 應用名
exam中檔案說明:admin.py:站點配置
models.py:模型
view.py:檢視
五、啟用應用
在settings.py檔案中,將exam應用加入
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'exam',
]
六、定義模型
6.1、有一個數據表,就對應一個模型
6.2、在models.py檔案中定義模型
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
# 關聯外來鍵
sgrade = models.ForeignKey("Grades")
七、在資料庫中生成資料表
7.1、生成遷移檔案
執行python manage.py makemigrations,在migrations檔案下生成一個遷移檔案,此時資料庫中還沒有生成資料表
7.2、執行遷移
執行python manage.py migrate 相當於在資料庫中生成表,(生成了二中的表結構,此時表中沒有資料)
八、測試資料
輸入python.manage.py shell 進入python shell
from myApp.models import Students,Grades #引入包
from django.utils import timezone
from datetime import *
grade1=Grades()
grade1.gname="1"
grade1.gdate=datetime(year=2017,month=2,day=20)
rade1.ggirlnum=20
grade1.gboynum=20
grade1.save()
stu=Students()
stu.sname="liudehua"
stu.sgender=False
stu.sage=20
stu.scontend="lalala"
stu.sgrade=grade1
stu.save()
在資料庫中插入了資料
九、啟動伺服器
9.1、格式 python.manage.py runserver ip:port
ip預設是本機ip,port預設是8000