在 settings.py 文件中进行配置
首先需要在 DATABASES 中进行配置,代码如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '[database_name]',
'USER': '[username]',
'PASSWORD': '[password]',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
注意第一个ENGINE
字段需要进行修改,刚创建时默认为sqlite
,由于我使用了mysql
所以把它修改为如上所示,另外Django还支持许多别的数据库,可以在External Libraries -> Lib -> site-packages -> django -> db -> backends
中查看。第二个字段如果使用了mysql
,就只需要把使用的数据库的名字写进去,而不需要像sqlite那样写路径。
使用Django操作数据库
使用原生的sql语句
在 Django 中使用原生 sql 语句操作其实就是使用 python db api 的接口来操作。需要先安装pymysql
或者 mysqlclient
,这两者都可以驱动mysql
的操作,区别是pymysql
是纯python实现的,可以和python无缝衔接,mysqlclient
底层是用C语言实现的,效率更高,也支持python3。
使用Django操作数据库需要从django.db
中导入connection
来获取游标,代码如下:
from django.db import connection
def get_cursor():
return connection.cursor()
cursor比较常用的操作有execute()
和fetchall()/fetchone()
,execute()
中写入sql语句,可以进行增删改查操作,fetchall()/fetchone()
用在cursor.execute("select xxx")
语句之后,可以给对象赋值查询的结果,示例代码如下:
from django.shortcuts import render
from django.db import connection
def index(request):
cursor = get_cursor()
cursor.execute("select id,name,author from book")
books = cursor.fetchall()
return render(request, 'index.html', context={'books': books})
使用ORM模型
未完待续