日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作

發(fā)布時間:2025/3/15 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Django自身默認使用sqlite3這個輕量級的數(shù)據(jù)庫,但是當我們開發(fā)網(wǎng)站時,sqlite3就沒有mysql好,sqlite3適合一些手機上開發(fā)使用的數(shù)據(jù)庫。

準備的軟件

mysql數(shù)據(jù)庫,版本5.7及以上。

navicat,(可選的)。使用navicat主要是簡化我們對數(shù)據(jù)庫的操作。沒有也一樣。

安裝mysql驅(qū)動程序。

常見的驅(qū)動程序:

a. MySQL-python:也就是MySQLdb,是對c語言操作數(shù)據(jù)庫的一個簡單封裝。遵循了Python DB API v2,但是只支持python2,目前還不支持python3.

b. mysqlclient:是MySQL-python的另外一個分支,支持python3并且修復了一些bug。(分支就是在原來的基礎上做了一些修改,但本質(zhì)上還是MySQL-python。最大的一個改動就是可以支持python3。)

c. pymysql:純python實現(xiàn)的一個驅(qū)動,因為是純python編寫的,因此效率不如MySQL-python,并且也是因為是純python編寫的,因此可以和python無縫銜接。

d. MySQL Connecter/Python:MySQL官方推出的使用純python連接MySQL的驅(qū)動。因為是純python開發(fā)的,效率也不高,但能無縫銜接。

還有很多就不介紹了。

因為我使用的時python3,所以我使用的是mysqlclient。

安裝驅(qū)動的方式:

pip install mysqlclient

Django中連接MySQL數(shù)據(jù)庫

在項目中的settings.py文件中,修改DATABASES這個字典中的數(shù)據(jù):

原來的代碼為

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

修改為

DATABASES = {

'default': {

#數(shù)據(jù)庫引擎

'ENGINE': 'django.db.backends.mysql',

#數(shù)據(jù)庫的名字

'NAME': 'test',

#連接數(shù)據(jù)庫的用戶名

'USER': 'root',

#連接數(shù)據(jù)庫的密碼(下載mysql時配置的密碼)

'PASSWORD': 'root',

#數(shù)據(jù)庫的主機地址

'HOST':'127.0.0.1',

#數(shù)據(jù)庫的端口號,默認為3306,也可以不寫這一行代碼

'PORT':'3306'

}

}

這樣就能連接到數(shù)據(jù)庫了,就能對數(shù)據(jù)庫進行操作了。

在Django中操作數(shù)據(jù)庫

在Django中操作數(shù)據(jù)庫的方式有兩種,第一種就是使用原生sql語句操作,第二種就是使用ORM模型來操作。

原生sql語句操作數(shù)據(jù)庫

首先使用navicat連接了mysql數(shù)據(jù)庫,新建一個test的數(shù)據(jù)庫。然后在test中新建一個book的表,有三個值id(主鍵,自動增長),name,author。

如果沒有navicat的就是用sql語句創(chuàng)建上述信息。

新建一個項目,配置好settings.py中的信息并且能連接上數(shù)據(jù)庫,在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()函數(shù)

#然后在里面寫入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),

]

輸入網(wǎng)址,在網(wǎng)頁中我們看不到任何信息,是因為我們沒有編寫html文件,但是已經(jīng)執(zhí)行了views.index中的代碼。刷新數(shù)據(jù)庫可以看到

信息已經(jīng)插入進去了。

我們也可以查詢數(shù)據(jù)庫里面的數(shù)據(jù),修改index函數(shù):

def index(request):

cursor = connection.cursor()

#cursor.execute("insert into book(id,name,author) values (null ,'三國演義','羅貫中')")

cursor.execute("select * from book")

#使用一個變量來接收查詢到的數(shù)據(jù),

#fetchall()返回查詢到的所有數(shù)據(jù)

rows = cursor.fetchall()

for row in rows:

print(row)

return render(request,'index.html')

然后我們再刷新網(wǎng)頁,在控制臺就能看到從數(shù)據(jù)庫中查詢到的信息了。

當然還可以執(zhí)行刪除,修改等操作,只需要修改execute()中sql語句就行了。

ORM模型

https://blog.csdn.net/xujin0/article/details/83550487

總結(jié)

以上是生活随笔為你收集整理的django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。