第一步打開命令列安裝django3.0
pip install Django==3.0

創建專案
切換到專案的目錄中去
啟動專案

專案運行成功

點擊http://127.0.0.1:8000
此頁面為安裝成功

2,配置msql
先安裝支持mysql的包
pip install pymysql

引入pymysql 并將pymysql 設定為 mysql的使用方式
import pymysql
pymysql.install_as_MySQLdb()

然后修改settings.py檔案,修改成如下
創建應用,python manage.py startapp APP,會生成一個新的檔案夾目錄

創建資料模型類

執行資料遷移

成功

重繪資料庫,看到django的表結構已經成功

在pycharm創建你的vue專案,我的專案名字是myProject,然后寫好前端,使用
node build/build.js打包vue專案
3,對python專案中settings.py組態檔進行修改
(1)修改靜態資源路徑,這個路徑是我的vue專案檔案夾下的打包好的dist檔案夾
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "myProject/dist/static")
]

(2)Django3.0將LANGUAGE_CODE和TIME_ZONE設定為中國時區
LANGUAGES = [
('zh-Hans', _('Chinese')),# _是from django.utils.translation import gettext_lazy as _
]
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/ShangHai'
(3)在settings.py檔案內添加你python的app應用

(4)修改templates公共模板目錄,修改成自己的模板路徑
DIRS作用是指定公用模板檔案夾的路徑,

測驗連接資料庫

在appname檔案夾中的views.py撰寫實作增刪改查的函式
這是我實作查看資料表部分欄位所有資料的函式
from django.http import HttpResponse, JsonResponse
import MySQLdb
from django.views.decorators.http import require_http_methods
...
@require_http_methods(["GET"])
def getAll(request):
conn = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="college", charset='utf8')
cursor = conn.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT Sid,name,age,sex,cardNumber FROM stubasicin')
students = cursor.fetchall()
print(students)
response = JsonResponse(students, safe=False)
return response

按需引入包

一些插曲
實作這里的時候出現了很多問題,最開始是前端獲取不到我回傳的值,然后用了一個
HttpResponse(students)來回傳值,結果回傳到前端的資料型別又不對,我這個變數值本來輸出是一個陣列,回傳到前端就變成了一個字串,百度才知道HttpResponse()若沒有設定content_type引數,默認為 text/html,瀏覽器會根據這個屬性,當作字串來處理他,
然后看到了JsonResponse這種方法,我第一次用的JsonResponse(students)回傳,運行專案報錯了,然后發現這個JsonResponse適用于處理json格式的資料,需要加一些引數,默認情況下,JsonResponse的傳入引數是個字典型別,而我用JsonResponse(students)傳的是一個陣列型別,要對非字典的資料進行傳遞,那么需要給 JsonResponse 傳遞一個 safe=False 引數,如
JsonResponse(students, safe=False)
Django處理請求:
1.一旦生成url頁面請求,請求傳遞到urls.py;
2.Django去urlpatterns中匹配鏈接(Django會在匹配到的第一個就停下來);
3.一旦匹配成功,就會去執行,path后面的方法,Django便會給出相應的view頁面(該頁面可以為一個Python的函式,或者基于view(Django內置的)的類),也就是用戶看到的頁面;
4.若匹配失敗,則出現錯誤的頁面,
在appname檔案夾中urls.py的urlpatterns 引數中,添加你要對資料進行操作函式的路徑,
然后在原目錄下的urls.py檔案添加
url(r'^app/', include('APP.urls')),

這樣后臺就差不多搭好了
運行python專案,在pyhon專案根目錄命令列執行python manage.py runserver
然后前端使用axios獲取后臺傳的值的代碼
methods: {
getData(){
this.$axios.get('http://127.0.0.1:8000/app/getAll')
.then((response) => {
console.log(response);
this.tableData= response.data;
console.log(this.tableData);
})
},
}
methods 是Vue實體物件上系結的方法,供當前Vue組件作用域內使用,未呼叫不會執行,只執行邏輯,回傳值可有可無,
在created周期函式里面呼叫這個方法
this.getData();
created(): 處于loading結束后,還做一些初始化,實作函式自執行(data資料已經初始化,但是DOM結構渲染完成,組件沒有加載)
前端頁面效果

資料成功獲取和顯示
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/265924.html
標籤:python
