1. 程式人生 > >django框架的使用流程(使用mysql資料庫)

django框架的使用流程(使用mysql資料庫)

最近學習到django框架,記錄一下這個框架的使用流程,首先理清MVT三者之間的聯絡是必要的。

1.基本流程

開啟cmd

1.到目標資料夾下建立專案:

django-admin startproject pro_name

2.cd進入到專案下,開始建立應用

python manage.py startapp app_name

3.註冊應用。
到專案裡的setting.py下注冊應用
在這裡插入圖片描述
4.在setting下更改database為mysql:

'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE':'django.db.backends.mysql',
        'NAME':'test',#資料庫名
        'USER':'root',#賬戶
        'PASSWORD':'password', #賬戶密碼
        'HOST':'localhost', #指定mysql位置,本地用localhost,其他電腦用IP地址
        'POST':3306,#埠號,本地預設的3306
    }

5.書寫app的models.py,設計資料庫

例子:

from django.db import models

# Create your models here.
# 一類
class BookInfo(models.Model):
	'''圖書模型類'''
	#圖書名稱
	btitle = models.CharField(max_length=20)
	#出版日期
	bpub_date = models.DateField()
	#閱讀量
	bread = models.IntegerField(default=0)
	#評論量
	bcomment = models.IntegerField(default=0)
	#刪除標記
	isDelete = models.BooleanField(default=False)

#多類
class HeroInfo(models.Model):
	#英雄名
	hname = models.CharField(max_length=20)
	#性別
	hgender = models.BooleanField(default=False)
	#備註
	hcomment = models.CharField(max_length=200)
	# 關係屬性
	hbook = models.ForeignKey('BookInfo')
	#刪除標記
	isDelete = models.BooleanField(default=False)

7.設計完成模型類,生成與之對應的表
7.1生成遷移檔案

python manage.py makemigrations app_name

若報mysql.db在這裡插入圖片描述
下載安裝pymysql,下載pymysql地址,併到專案的__init__.py裡面寫上(若已安裝,直接書寫下面的程式碼)

import pymysql
pymysql.install_as_MySQLdb()

7.2執行遷移生成表

python manage.py migrate

另附:
{mysql的基礎操作,mysql -uroot -p;
show databases;
use 資料庫名;
show tables;
desc 表名; #表結構
insert into 表名(hanme,hgender,hbookid) values(對應的值),(對應的值),(對應的值)}
在這裡插入圖片描述


生成表的預設格式:應用名_模型類

6.啟動web伺服器 python manage.py runserver

2.附:小例子深入理解MVT三者之間的關係:

1)圖書資訊展示頁
a)設計url,通過瀏覽器訪問http://127.0.0.1:8000/index 時顯示圖書資訊頁面。
b)設計url對應的檢視函式index。
查詢出所有圖書的資訊,將這些資訊傳遞給模板檔案。
c)編寫模板檔案index.html。遍歷顯示出每一本圖書的資訊增加新建和刪除的超連結。

步驟:
1.到應用views建立index函式

from django.shortcuts import render
from booktest.models import BookInfo
# Create your views here.
def index(request):
	'''顯示圖書資訊'''
	#1.查詢出所有圖書的資訊
	books = BookInfo.objects.all()
	#2.使用模板

2.建立模板
在專案下建立模板資料夾,templates。
修改專案的settings.py 下的TEMPATES中dir

'DIRS': [os.path.join(BASE_DIR,'templates')],#設定模板目錄

3.到templates新建模板檔案。首先到templates先新建一個與應用同名的資料夾,在到該目錄下建立模板檔案。在這裡插入圖片描述
4.到應用裡使用模板,views下新增程式碼。

	#2.使用模板
	return render(request,'booktest/index.html',{'books':books})  

在這裡插入圖片描述
5.配置url。
第一次配置到專案的url。

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^',include('booktest.urls')),#包含booktest應用的urls檔案
]

到應用下建立urls.py檔案
在這裡插入圖片描述
寫入內容

from django.conf.urls import url
from booktest import views
urlpatterns = [
	url(r'^index$',views.index)
]

6.編輯index.html檔案。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>圖書資訊</title>
</head>
<body>
	<ul>
		{% for book in books %}
		<li>{{ book.btitle }}</li>
		{% endfor %}
	</ul>
	
</body>
</html>

此時出現基本的效果:
在這裡插入圖片描述

大致梳理一下這些檔案間的脈絡:
首先輸入地址:找到專案目錄下的 urls.py,進行正則匹配,轉到了應用下的 urls.py,再次進行正則匹配,轉到view下的index,回傳的是index.html檔案。繼續增加與刪除超連結的編寫。