使用Django与MySQL建立连接的简单介绍

这里只展示关键代码

增:save()

查:objects.all()/objects.get(k=xx)

更新:基于查询,更新属性,save()

删:基于查询,delete()

1.1、下载pymysql

可以使用指令安装也可以:pip install pymysql

setting —> Project —> Python Interpreter —> 点击 +号 —> 输入pymysql选择版本安装即可(但是我的不好使,我使用的是命令行操作)

1.2、修改settings配置

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db', # 数据库名
        'USER': '你的数据库用户名',
        'PASSWORD': '你的数据库密码',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

1.3、创建数据库

-- 这里我的数据库名叫django_db
create database django_db character set utf8

1.4、定义模型类

  • 模型类被定义在"应用/models.py"文件中。

  • 模型类必须继承自Model类,位于包django.db.models中。

# user/models.py
from django.db import models

# Django通过Models定义实现数据库表的定义
# Create your models here.

# 定义模型
class Student(models.Model):
    s_name = models.CharField(max_length=15)
    s_age = models.IntegerField(default=1)
-----------------------------------    
# user/views.py
from django.http import HttpResponse

from user.models import Student
# 在视图函数中实现增操作:这里我只展示了增
def add_student(request):
    student = Student()
    student.s_name = 'Jerry'
    student.s_age = 18
    student.save()
    return HttpResponse('添加成功!')

---------------------------------
# user/urls.py
from django.urls import path

from user import views

urlpatterns = [
    path('add_student',views.add_student),
]

--------------------------------
# 主urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/',include('user.urls'))
]

1.5、 生成迁移文件并执行(通知Django同步数据到库中)

# 主目录下的__init__.py

import pymysql
pymysql.install_as_MySQLdb()

命令行:

# 生成迁移文件 指令
python manage.py makemigrations

# 执行迁移文件,把表映射到库中 指令 
python manage.py migrate

然后启动Django:

>python manage.py runserver

查看数据库发现数据库和表以及添加操作都成功啦!!

而且浏览器端也可以成功访问到:

image-20221115121918480

1.6、可能遇到的报错

关于mysql驱动,这里我演示的是 pymsql

1.6.1 settings.py处

如果把user写成了username则可能发生报错:

django.db.utils.OperationalError: (1045, "Access denied for user 'Administrator'@'localhost' (using password: YES)")

1.6.2 生成迁移文件时报错

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

然后我就执行命令:pip install cryptography,再执行迁移即可。

posted @ 2022-11-15 16:09  来日可追  阅读(333)  评论(0编辑  收藏  举报