django(五)连接mysql

lxf2023-05-11 01:01:00

我正在参加「编程·启航计划」

Django 默认支持的数据库是sqlite,但是正常我们使用的是mysql,因此我们需要修改一下他的默认配置

首先,放一下我们的项目根目录结构:

django(五)连接mysql

1 :修改默认数据库配置

如上图所示:进入blogadmin目录下:

django(五)连接mysql

编辑上图红框中的setting.py

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3', # django默认支持sqlite
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE':'django.db.backends.mysql',#修改mysql支持
        'NAME':'django',#数据库名称
        'USER':'xxxx',#用户名
        'PASSWORD':'xxxxxxxxx',#用户密码
        'HOST':'xxxxxxxxxx',#用户连接
        'PORT':3306,#数据库端口
    }
}

2 :安装mysql数据库驱动,我这里使用pymysql

pip install pymysql

3 :配置数据库驱动

在setting.py同级目录下的_init_.py文件中加入以下内容:

import pymysql
pymysql.version_info = (1413"final"0)
pymysql.install_as_MySQLdb()  # 使用pymysql代替mysqldb连接数据库

4 :数据库迁移

python3 manage.py migrate

迁移成功显示:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

5 :执行原生sql

有时候raw()方法并不十分好用,很多情况下我们不需要将查询结果映射成模型,或者我们需要执行DELETE、 INSERT以及UPDATE操作。在这些情况下,我们可以直接访问数据库,完全避开模型层。

我们可以直接从django提供的接口中获取数据库连接,然后像使用pymysql模块一样操作数据库。

from django.db import connection, connections
cursor = connection.cursor()  # cursor = connections['default'].cursor()
cursor.execute("""SELECT * from auth_user where id = %s""", [1])
ret = cursor.fetchone()
from django.db import connection
 
cursor=connection.cursor()
 
# 插入操作
cursor.execute("insert into hello_author(name) values('钱钟书')")
 
# 更新操作
cursor.execute("update hello_author set name='abc' where name='bcd'")
 
# 删除操作
cursor.execute("delete from hello_author where name='abc'")
 
# 查询操作
cursor.execute("select * from hello_author")
 
raw=cursor.fetchone()  # 返回结果行游标直读向前,读取一条
cursor.fetchall()  # 读取所有

以上大概就是python 链接 mysql(mariadb)数据库的基本的操作。没做太深入的应用,这个后边用到了再说

有好的建议,请在下方输入你的评论。

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!