Django连接mysql数据库浅析

一、安装pymysql

1. 查看已安装的第三方库的列表
   命令: pip list在这里插入图片描述
  2. 如果没有pymysql这个第三方库,则安装(需要注意的是django2.2版本的暂时还不支持pymysql,所以如果使用的话,需要先降到2.1版本,不然可能会报错,如果报错,请查看我上一篇的解决办法)
   命令:pip install django==2.1.0
   命令:pip install pymysql
  
  3. 安装成功后的第三方库
在这里插入图片描述

二、在主项目的文件中设置连接

1. 在项目主目录下的init文件中添加下面两句代码

import pymysql  # 导入第三方模块,用来操作mysql数据库

pymysql.install_as_MySQLdb()

需要注意的是,如果你import pymysql的时候下面有红线,并且你已经在你使用的python虚拟环境中安装好了pymysql模块,那么你可以重新打开一下你的项目:点击一下 File—> close project ----> 然后再打开你使用的项目,这时import 导入pymysql就不会报错了。

2. 在settings文件中设置数据库连接

DATABASES = {
    'default': {
        # python自带的一个数据库,基本不会被使用
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        # 注册我们自己使用的数据库连接
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'NAME': 'mydb', #数据库名称
        'USER':'admin', # 连接数据库的用户名称
        'PASSWORD':'Root110qwe',  # 用户密码
        'HOST':'192.168.152.154', # 访问的数据库的主机的ip地址
        'PORT':'3306', # 默认mysql访问端口
    }
}

需要注意的是,host需要写成你的数据库所在的主机或虚拟机的ip地址,如果是在本机上或者是virtualbox中设置了端口转发可以使用127.0.0.1即可。

三、创建数据库模型类

1. 创建模型类(找到你需要使用模型的项目中的任意app的目录下的models文件)

from django.db import models

# Create your models here.

# 创建模型类
class  Meishi(models.Model):
    id = models.AutoField(primary_key=True)  # 该字段可以不写,它会自动补全
    food_name = models.CharField(max_length=30) # 设置食物名称
    food_author = models.CharField(max_length=8) # 设置食物制作人
    food_money = models.FloatField()  # 设置食物价格
    food_star = models.CharField(max_length=10,default='普通') # 设置食物美味程度

    def __str__(self):  # 重写直接输出类的方法
        return "<Meishi:{id=%s,food_name=%s,food_author=%s,food_money=%s,food_star=%s}>"\
               %(self.id,self.food_name,self.food_author,self.food_money,self.food_star)

2. 将我们创建好的模型类映射到数据库

a:

直接在命令行执行命令 : python manage.py makemigrations 或 python manage.py makemigrations app_name

可以指定你的项目中的app的名字;也可以不指定,直接映射该项目中全部的app中的表模型

b:

在pycharm中运行 Run manage.py Task 然后输人makemigrations 或 makemigrations app_name 同上面的效果是一样的
在这里插入图片描述
在这里插入图片描述
3. 将我们映射的数据表真正在数据库中创建的对应的表

a:

直接在命令行执行命令 : python manage.py migrate 或 python manage.py migrate app_name

可以指定你的项目中的app的名字;也可以不指定,直接创建项目中所有app下映射好的表

b:

在pycharm中运行 Run manage.py Task 然后输人migrate 或 migrate app_name 同上面的效果是一样的

在这里插入图片描述
在这里插入图片描述

现在我们在数据库中就可以看到我们创建的表了,效果图如下:
   在这里插入图片描述

数据库中创建的表的名称是以项目中app的名称+我们自己创建的表的模型类的类名组合成的。

可以通过desc 表名的命令查看表结构就是我们在模型类中设置的表结构:
在这里插入图片描述

四、创建好对数据库增删改查的视图渲染方法

1. 在项目使用的app目录下的views.py文件中写增删改查的方法

from django.shortcuts import render        # 可以用来返回我们渲染的html文件
from django.http import HttpResponse       # 可以返回渲染的页面
from .models import Meishi                 # 导入我们的模型类
# Create your views here.

# 添加数据方法
def add_food(request):
    # 第一种方式插入数据
    tcpg = Meishi(food_name='糖醋排骨',food_author='一一',food_money=25,food_star='美味')
    tcpg.save()   # 一定要记得保存,不然数据无法插入进去
    # 第二种方式插入数据
    lzj = Meishi()
    lzj.food_name = '辣子鸡'
    lzj.food_author = '张三'
    lzj.food_money = '30'
    lzj.food_star = '超级美味'
    lzj.save()   # 一定要记得保存,不然数据无法插入进去
    # 第三种方式插入数据(该方法不需要保存,会自动保存)
    sltds = Meishi.objects.create(food_name='酸辣土豆丝',food_author='一一',food_money=25,food_star='美味')
    # 第四种方式插入数据(该方法不需要保存,且不会插入重复数据)
    clbc = Meishi.objects.get_or_create(food_name='醋溜白菜',food_author='李四',food_money=25,food_star='很美味')
    return HttpResponse("添加数据成功")

# 查询数据方法
def select_food(request):
    # 查询表中的所有数据
    rs = Meishi.objects.all()
    print(rs)
    # 根据筛选条件查询出表中的单挑数据(注意如果条件查询出多条数据,使用该语句会报错)
    rs1 = Meishi.objects.get(food_name='醋溜白菜')
    print(rs1)
    # 根据筛选条件查询出表中的数据(可查询出多条)
    rs2 = Meishi.objects.filter(food_author="一一")
    rs2 = list(rs2)
    print(rs2)
    return HttpResponse("查询数据成功")

# 更新数据方法
def update_food(request):
    # 根据条件查询后再修改再保存
    clbc = Meishi.objects.get(food_name='醋溜白菜')
    clbc.food_star = '难吃'
    clbc.save()
    # 直接修改所有的数据
    Meishi.objects.all().update(food_star='美味')
    return HttpResponse("修改数据成功")

# 删除数据方法
def delete_food(request):
    Meishi.objects.get(id=1).delete()
    return HttpResponse("删除数据成功")

2. 在项目中对应app下的urls文件中配置对应的路由

from django.urls import path,include  # path设置我们的路由,include可以设置我们的分路由
from . import views  # 将我们写好的views文件导入

urlpatterns = [   # 我们这个app的所有路由都会写在这个文件下
    path("add_food/",views.add_food),
    path("select_food/",views.select_food),
    path("update_food/",views.update_food),
    path("delete_food/",views.delete_food),
]

五、前端显示

这个时候我们通过我们设置的路由即可对数据库中的表进行增删改查操作:
http://127.0.0.1:8000/add_food/
http://127.0.0.1:8000/select_food/
http://127.0.0.1:8000/update_food/
http://127.0.0.1:8000/delete_food/

在Python中,可以使用Django框架来连接MySQL数据库。下面是连接MySQL数据库的步骤: 1. 安装MySQL驱动程序 在Python中连接MySQL数据库需要使用MySQL驱动程序,可以使用pip命令安装MySQL驱动程序,命令如下: ``` pip install mysql-connector-python ``` 2. 在Django项目中配置数据库连接信息 在Django项目的settings.py文件中,可以配置MySQL数据库连接信息,如下所示: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'username', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', } } ``` 其中,'ENGINE'指定了使用的数据库引擎,'NAME'指定了数据库名称,'USER'和'PASSWORD'指定了连接数据库的用户名和密码,'HOST'指定了数据库服务器的地址,'PORT'指定了数据库服务器的端口号。 3. 创建Django模型 在Django项目中,可以使用模型来操作数据库。可以在models.py文件中定义模型,如下所示: ``` from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) pub_date = models.DateField() ``` 上述代码定义了一个Book模型,包含了title、author和pub_date三个字段。 4. 运行数据库迁移命令 在Django项目中,需要运行数据库迁移命令来创建数据库表。可以使用以下命令来运行数据库迁移命令: ``` python manage.py makemigrations python manage.py migrate ``` 5. 使用Django模型操作数据库Django项目中,可以使用模型来操作数据库。可以使用以下代码来创建一条Book记录: ``` from myapp.models import Book from datetime import date book = Book(title='Python入门教程', author='张三', pub_date=date(2021, 1, 1)) book.save() ``` 上述代码创建了一条Book记录,并将其保存到数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值