基于django框架web项目实战开发三 django连接mysql数据库

版权声明:请点击关注 https://blog.csdn.net/weixin_42914677/article/details/89743027

本次要完成的内容有:

1、实现与mysql数据库的链接

2、并测试链接

3、实现简单的查询功能

本次内容是基于上一节的基础上而进行,上次内容https://blog.csdn.net/weixin_42914677/article/details/89742495

链接数据库之前,先准备好mysql数据库

我的数据库是本机上的stu01数据库,创建数据库,在这里就不在介绍,你可以网上查找资料(我用的是xampp和navicat)

第一步:设置数据库链接

找到工程目录下的settings.py文件,并打开,找到DTABASE,

然后将以下代码修改进去,注意:链接数据库的信息,是根据自己要链接数据库的信息而填写

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库驱动
        'NAME': 'stu01',  # 数据库名
        'USER': 'root',  # 用户名
        'PASSWORD': '123456',  # 密码
        'HOST': '127.0.0.1',  # 数据库地址
        'PORT': '3306'  # 链接数据端口
    }
}

第二步:工程加载数据库

找到工程目录下__init__.py文件,并打开

打开后,添加以下代码

import pymysql
pymysql.install_as_MySQLdb()

你将会发现,导入的pymysql有错误,那是因为你的工程没有添加mysql驱动

第三步:导入mysql驱动

找到 file-》settings,按照以下步骤安装,注意,要找的是PyMySql,而不是pymysql,大小写注意。

安装完成后,看到以下信息,说明安装成功

导入成功后,启动工程测试

如果你跟着我的步骤,你的工程一定会出现以下错误提示

错误原因是因为django工程版本与mysql驱动版本问题,不过,这没有关系,你只要将版本提示注释掉即可

点击打开错误提示的base.py文件,并将版本注释

再次启动测试,

将会再次看到以下错误,不过,不要紧,你只要将其修改为

query = query.encode(errors='replace')

然后,再次启动测试

如果看到以下界面,说明你的mysql成功连接


第四步:创建数据库表模型

先找到项目(myweb)目录下的models.py

点击打开,将以编写第一个用户表的模型myweb_user,对应的是数据库表,

注意一点:django框架数据库表有他自己的命名规则,一般情况下表的名称是:项目名称_表名称。例如myweb_user,myweb是你的项目名称,user对应的是你的类名

from django.db import models


# 创建一个数据库user表模型
class User(models.Model):
    # 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列
    id = models.AutoField(primary_key=True)
    # 类里面的字段代表数据表中的字段(username),数据类型则由CharField(相当于varchar)
    username = models.CharField(max_length=100)
    # 密码
    password = models.CharField(max_length=100)

第五步:为你数据库创建表,并同步数据

右键点击你的工程,找到open in Terminal

创建同步文件

输入:python manage.py makemigrations

创建表结构并同步到数据库

输入:python manage.py migrate

完成后,打开数据库查看,将会多了很多表,其中有一张是你自己刚刚写的user类生成的表(myweb_user),其他表都是框架自己的表,暂时你不用去管太多。

第六步:编写从myweb_user获取数据,并显示到页面上

1、在views.py编写业务代码

添加一下代码:

from django.shortcuts import render
from myweb.models import User
# Create your views here.
#页面查询用户信息
def queryUsers(request):
    #到数据库查询用户信息
    us = User.objects.all()
    #将数据发给页面
    context = {"ls": us}
    return render(request, "users.html", context)

2、编写页面users.html

在工程目录下找到,然后新建user.html文件(选择工程项目找到templates,右键新建new-html file)

然后编写以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Users</title>
</head>
<body>
<table border="1">
        <thead>
        <tr>
            <th>ID</th>
            <th>名称</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for row in ls %}
            <tr>
                <td>{{ row.id }}</td>
                <td>{{ row.username }}</td>
                <td>
                    <a href="#?nid={{ row.id }}">删除</a>
                    |
                    <a href="#?nid={{ row.id }}">编辑</a>
                </td>
            </tr>
        {% endfor %}
        </tbody>
    </table>

</body>
</html>

3、添加访问路径

打开urls.py

编写以下代码:

from django.contrib import admin
from django.urls import path
from myweb import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', views.queryUsers),
]

4、启动项目

5、测试

打开浏览器输入:http://localhost:8000/users/

看到以上页面,说明已经成功!!

现在暂时没有数据,如何你希望看到数据,你可以手动到数据库添加数据库,再刷新查看

看到此页面,恭喜你,django链接mysql功能成功!!之后,你就完全可以设计你的工程项目了

猜你喜欢

转载自blog.csdn.net/weixin_42914677/article/details/89743027