Django 模型操作数据库

Django 模型操作数据库:
如果你没安装 mysql 驱动,可以执行以下命令安装:
pip install pymysql


一、
Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。
Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。


二、
Django 模型使用自带的 ORM。
对象关系映射(Object Relational Mapping,简称 ORM )用于实现面向对象编程语言里不同类型系统的数据之间的转换。
ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。


三、程序配置
1.新建应用
python manage.py startapp faqs
编写models.py文件
from django.db import models
#定义模型就相当于定义数据库的表,模型必须得是一个类,也就是class文件
# Create your models here.
class faqs(models.Model):
    #模型中的属性就相当于定义表的字段,下面表示有两个字段:question和answer
    #如果没有定义主键,他就会自动定义一个属性,ID作为主键
    question=models.CharField(max_length=20,blank=True)
    answer=models.CharField(max_length=20,blank=True)


2.项目主应用下的_init_.py
填写:
import pymysql
pymysql.install_as_MySQLdb()


3.项目主应用下的settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#数据库引擎,表示使用的mysql数据库
        #'NAME': BASE_DIR / 'db.sqlite3',#设置数据库的名称,表示默认数据库的文件名为项目主目录下的db.sqlite3
        'NAME':'mysql',#库名,不是连接名bendi
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'localhost',
        'PORT':'3306',
    }
}


4.迁移数据库
在完成模型的定义和配置后,在使用数据库之前,还需执行数据库迁移操作
①.然后再cd到对应的项目目录下执行:
c:\pythonWeb\chapter4>python manage.py makemigrations
返回如下:
Migrations for 'faqs':
  faqs\migrations\0001_initial.py
    - Create model faqs
再看项目faqs\migration文件夹的确生成了文件0001_initial.py迁移文件
②执行命令python manage.py migrate
报错:django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1"))


5.解决报错
经过问题定位是因为mysql版本过低的原因,django的版本只支持mysql5.6以上的版本
那么就要先卸载mysql参考网址:https://blog.csdn.net/Mei_yu_01/article/details/121922577
再安装最新版本的mysql参考网址:https://blog.csdn.net/qq_59636442/article/details/123058454
安装完毕后,使用Navicat Preminum连接,报错:Authentication plugin 'caching_sha2_password' cannot be loaded
经查看定位,是因为Navicat Preminum版本低的原因,支持的加密方式跟mysql8.0不一样,可以修改mysql8.0的加密方式,参考网址:
https://blog.csdn.net/fengyuyeguirenenen/article/details/124423512


6.再执行命令python manage.py migrate
执行成功,在数据库中成功创建表和字段


 

猜你喜欢

转载自blog.csdn.net/qq_40333984/article/details/126060170