Django連線MySQL資料庫

2021-09-22 18:43:15 字數 2302 閱讀 3191

最近幾天在學習django框架,本以為一天內基本可以擼一遍,沒想到卻花了我兩天的時間。中途踩過一些坑,最大的坑應該是django的orm機制,今晚有空來分享一下。

1. 如果沒有安裝django,用pip安裝:

安裝指定版本:pip3 install django==1.11.5

安裝最新版本:pip3 install django或者pip3 install django

解除安裝django:pip3 uninstall django

2. 找乙個檔案目錄,建立專案:

django-admin startproject 專案名稱

3. 進入專案目錄,建立應用:

1. 在__init__.py檔案中配置資料庫:

import pymysql

pymysql.install_as_mysqldb()

如果沒有安裝pymysql,則安裝:pip install pymysql或者pip3 install pymysql

2. 在settings.py中配置資料庫

databases = 

}

注意:

engine:預設的為sqlite3,這裡修改為mysql

name:資料庫名

user:資料庫賬戶

password:資料庫密碼

port:mysql資料庫預設埠3306

class visitors(models.model):

user_id = models.charfield('使用者id',max_length=64,null=false,primary_key=true,unique=true)

mac_address = models.charfield('mac位址',max_length=64,null=false)

member_level = models.integerfield('使用者等級',null=false,default=1)

community_low = models.integerfield('初級魚塘',null=false,default=1)

community_middle = models.integerfield('中級魚塘',null=false,default=0)

community_height = models.integerfield('高階魚塘',null=false,default=0)

def __str__(self):

return self.user_id

class meta:

# 定義該 model 在資料中的表名稱:

# db_table = 'visitors'

db_table = 'visitors'

注意:這個巨坑,瞬間讓我掉了好幾根頭髮

還好有前輩指定:參考django model meta選項

2. 資料庫中的表名稱

如果想自定義資料庫的表名稱,需要在 class meta 使用 db_table 引數來自定義。

如果你的資料庫表名稱是乙個sql保留字,或者它包含不允許出現在 python 變數中的字元 (比如連字元)這是沒問題的。因為 django 會自動給列名和表名新增引號。

在 mysql 中使用小寫字母作為資料庫表名稱

強烈建議你在通過 db_table 過載資料庫表名稱時,使用小寫字母,特別是當你在使用 mysql 作為後台資料庫時。

1. 終端輸入指令:python3 manage.py makemigrations

將每個應用下的models.py檔案生成乙個中間檔案並儲存在migrations

如果要遷移指定的models.py:python3 manage.py makemigrations + 應用名稱

2. 終端輸入指令:python3 manage.py migrate

將每個應用下的migrations目錄中的中間檔案同步回資料庫

3. 遷移資料庫成功:

Django 連線 Mysql 資料庫

django專案要運算元據庫,首先要和資料庫建立連線,才能讓程式中的資料和資料庫關聯起來進行資料的增刪改查操作 django專案預設使用mysqldb模組進行和mysql資料庫之間的互動操作,但是mysqldb模組對於python3.4以上的版本支援還不夠完善,所以我們要使用替代方案通過pymysq...

django 連線mysql 資料庫

1 新建乙個mysite專案 django admin startproject mysite 3 安裝mysqlclient pip install mysqlclient 4 在settings.py database中設定資料庫連線配置 databases 5 執行命令 python mana...

Django連線mysql資料庫

作業系統 mac os 在專案setting檔案中修改資料庫配置 databases 只是設定這樣的話,執行報錯nameerror name mysql is not defined 安裝mysqlclient 和pymysql pip install mysqlclient pip install...