Django框架003:orm与MySQL数据库的连接及踩坑记录

 大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop

小淼Develop的个人空间-小淼Develop个人主页-哔哩哔哩视频

本篇文章主要讲述:快速上手,pythonweb开发Django框架

目录

mysqlclient 模块

ORM

1.手动创建数据库

启动自己的mysql服务

 cmd命令窗创建数据库

扫描二维码关注公众号,回复: 15096350 查看本文章

2.Djngo连接数据库

在setting.py文件中进行配置和修改。

3.确保app已注册

4.Djngo操作表(自动创建表的命名方式:注册的app名字+class的类名“UserInfo”)

在models.py文件中写入(示范代码:在app01_userinfo表中创建数据结构:

name,password,age)

到此,有可能发生的报错

问题解决

数据库中的数据表

 数据表的数据结构

删除表/删除表中的数据

修改表数据结构

总结


mysqlclient 模块

Django支持mysqlclient 模块,通过它来连接mysql数据库大大节省了,我们使用pymysql模块库的一些繁琐的操作。

pip install mysqlclient 

ORM

ORM可以帮助我们做两件事:

1.创建、修改、删除数据库中的表(不用写sql语句)但是【无法创建数据库,数据库必须我们手动在mysql中创建】

2.操作表中的数据(不用写sql语句)

所以:

1.手动创建数据库

启动自己的mysql服务

方式1:进入mysql中输入以下命令:

net start 你的mysql名字

方式2:进入“任务管理器”>右键启动

 cmd命令窗创建数据库

create database 数据库名字;

2.Djngo连接数据库

在setting.py文件中进行配置和修改。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名字', 
        'USER': 'mysql用户名',
        'PASSWORD': 'mysql密码器',
        'HOST': '127.0.0.1',  # 安装MySQL数据库的机器
        'PORT': 3306  # 端口
    }
}

3.确保app已注册

在setting.py中查看到(app01已经注册)

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config'
]

4.Djngo操作表(自动创建表的命名方式:注册的app名字+class的类名“UserInfo”)

在models.py文件中写入(示范代码:在app01_userinfo表中创建数据结构:

name,password,age)

from django.db import models


class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

写入之后紧接着在pycharm中的命令窗口,在Django文件的根目录下输入命令:

python manage.py makemigrations

此时观察migrations文件夹下是否自动添加了py文件(如下图所示:)

然后,在输入命令:

python manage.py migrate

到此,有可能发生的报错

django.db.utils.NotSupportedError: MySQL 5.7 or later is required

这是安装的Django与mysql的版本不兼容导致。

问题解决

1.降低我们Django模块库的版本

2.创新安装一个8版本级以上的mysql数据库

解决兼容问题后,重新运行命令:python manage.py migrate

数据库中的数据表

 数据表的数据结构

删除表/删除表中的数据

在models.py文件中想要删除表的类(如:userinfo类)/数据结构(如:name字段)注释或删除,并重新执行下面命令

python manage.py makemigrations
python manage.py migrate

修改表数据结构

在表中新增列时,由于已存在列表中可能已有数据,所以新增列必须要制定新增列对应的数据:

1,手动输入一个值

设置默认值

age = models.IntegerField(default=2)

允许为空

age = models.IntegerField(null=True,blank=True)

总结

以后在开发中如果想要对表结构进行调整:

在models.py文件中操作即可。

python manage.py makemigrations
python manage.py migrate

猜你喜欢

转载自blog.csdn.net/lbcyllqj/article/details/130581689
今日推荐