django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作
Django自身默認使用sqlite3這個輕量級的數據庫,但是當我們開發網站時,sqlite3就沒有mysql好,sqlite3適合一些手機上開發使用的數據庫。
準備的軟件
mysql數據庫,版本5.7及以上。
navicat,(可選的)。使用navicat主要是簡化我們對數據庫的操作。沒有也一樣。
安裝mysql驅動程序。
常見的驅動程序:
a. MySQL-python:也就是MySQLdb,是對c語言操作數據庫的一個簡單封裝。遵循了Python DB API v2,但是只支持python2,目前還不支持python3.
b. mysqlclient:是MySQL-python的另外一個分支,支持python3并且修復了一些bug。(分支就是在原來的基礎上做了一些修改,但本質上還是MySQL-python。最大的一個改動就是可以支持python3。)
c. pymysql:純python實現的一個驅動,因為是純python編寫的,因此效率不如MySQL-python,并且也是因為是純python編寫的,因此可以和python無縫銜接。
d. MySQL Connecter/Python:MySQL官方推出的使用純python連接MySQL的驅動。因為是純python開發的,效率也不高,但能無縫銜接。
還有很多就不介紹了。
因為我使用的時python3,所以我使用的是mysqlclient。
安裝驅動的方式:
pip install mysqlclient
Django中連接MySQL數據庫
在項目中的settings.py文件中,修改DATABASES這個字典中的數據:
原來的代碼為
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
修改為
DATABASES = {
'default': {
#數據庫引擎
'ENGINE': 'django.db.backends.mysql',
#數據庫的名字
'NAME': 'test',
#連接數據庫的用戶名
'USER': 'root',
#連接數據庫的密碼(下載mysql時配置的密碼)
'PASSWORD': 'root',
#數據庫的主機地址
'HOST':'127.0.0.1',
#數據庫的端口號,默認為3306,也可以不寫這一行代碼
'PORT':'3306'
}
}
這樣就能連接到數據庫了,就能對數據庫進行操作了。
在Django中操作數據庫
在Django中操作數據庫的方式有兩種,第一種就是使用原生sql語句操作,第二種就是使用ORM模型來操作。
原生sql語句操作數據庫
首先使用navicat連接了mysql數據庫,新建一個test的數據庫。然后在test中新建一個book的表,有三個值id(主鍵,自動增長),name,author。
如果沒有navicat的就是用sql語句創建上述信息。
新建一個項目,配置好settings.py中的信息并且能連接上數據庫,在settings.py的同級目錄下新建一個views.py的文件,templates文件夾下新建一個index.html的文件。
views.py中寫入:
from django.shortcuts import render
#導入`connection`
from django.db import connection
def index(request):
cursor = connection.cursor()
#要想使用sql原生語句,必須用到execute()函數
#然后在里面寫入sql原生語句
cursor.execute("insert into book(id,name,author) values (null ,'三國演義','羅貫中')")
return render(request,'index.html')
urls.py中寫入:
from . import views
from django.urls import path
urlpatterns = [
path('', views.index),
]
輸入網址,在網頁中我們看不到任何信息,是因為我們沒有編寫html文件,但是已經執行了views.index中的代碼。刷新數據庫可以看到
信息已經插入進去了。
我們也可以查詢數據庫里面的數據,修改index函數:
def index(request):
cursor = connection.cursor()
#cursor.execute("insert into book(id,name,author) values (null ,'三國演義','羅貫中')")
cursor.execute("select * from book")
#使用一個變量來接收查詢到的數據,
#fetchall()返回查詢到的所有數據
rows = cursor.fetchall()
for row in rows:
print(row)
return render(request,'index.html')
然后我們再刷新網頁,在控制臺就能看到從數據庫中查詢到的信息了。
當然還可以執行刪除,修改等操作,只需要修改execute()中sql語句就行了。
ORM模型
https://blog.csdn.net/xujin0/article/details/83550487
總結
以上是生活随笔為你收集整理的django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ssm项目_JAVA项目:逝去
- 下一篇: QCustomplot基础应用