一、Django连接mysql数据库 二 、Django+mysql实现增删查改功能
前提条件: 1.安装好pycharm企业版(社区版不能搭建Django工程) 2. windows下安装好python 3. 搭建好的Django工程
Django工程搭建成功截图如下: 实现与mysql数据库的连接: 1.准备好的mysql数据库,我的数据库名称为yrx-djg(我用的是xampp和navicat)也可以使用其他的数据库,但相对于其他的数据库,navicat较为简单易懂。 第一步:设置数据库链接 找到工程目录下的settings.py文件,并打开,找到DTABASE,并添加也下代码
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库驱动 'NAME': 'yrx-djg', # 数据库名 'USER': 'root', # 用户名 'PASSWORD': '', # 密码 'HOST': '127.0.0.1', # 数据库地址 'PORT': '3306' # 链接数据端口 } }第二步:工程加载数据库 找到工程目录下__init__.py文件,打开并添加也下代码:
import pymysql pymysql.install_as_MySQLdb()这时会发现导入的pymysql是错误的,因为没有pymysql这个驱动
第三步:导入mysql驱动 找到 file->settings,按照以下步骤安装,注意,要找的是PyMySql,而不是pymysql,大小写注意。 如下图所示表示安装成功: 安装成功后运行还是会出错,错误原因是因为django工程版本与mysql驱动版本问题,只要将版本提示注释掉即可。 点击打开错误提示的base.py文件,并将版本注释 再次运行还是会出错,只要将下面代码修改即可 query = query.ecode(errors='ecode') 如果看到以下界面,说明你的mysql成功连接 第四步:创建数据库表模型 先找到项目(web)目录下的models.py 点击打开,将以编写第一个用户表的模型web_user,对应的是数据库表, **注意一点:**django框架数据库表有他自己的命名规则,一般情况下表的名称是:项目名称_表名称。例如web_user,web是你的项目名称,user对应的是你的类名
第五步:为你数据库创建表,并同步数据 右键点击你的工程,找到open in Terminal,创建同步文件 输入:python manage.py makemigrations 运行后多了如下所示文件: 创建表结构并同步到数据库 输入:python manage.py migrate 完成后,打开数据库查看,将会多了很多表,其中有一张是你自己刚刚写的user类生成的表(web_user),其他表都是框架自己的表,暂时你不用去管太多。 第六步:编写从web_user获取数据,并显示到页面上 1、在views.py编写业务代码,添加如下代码:
from django.shortcuts import render from web.models import User # Create your views here. #页面查询用户信息 def queryUsers(request): #到数据库查询用户信息 us = User.objects.all() #将数据发给页面 context = {"ls": us} return render(request, "users.html", context)2、编写页面user.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/ 6、在数据库添加相应的信息,我们就可以刷新看到我们所添加的信息。
表里面添加的信息: 刷新后的信息: Django+mysql实现增删查改功能
第一步:编写增删查改功能代码 打开项目myweb目录下view.py,并编写以下代码:
from django.shortcuts import render, redirect from web.models import User # Create your views here. #页面查询用户信息 def queryUsers(request): # 到数据库查询用户信息 us = User.objects.all() # 将数据发给页面 context = {"ls": us} return render(request, "users.html", context) # 打开添加页面 def openAdd(request): return render(request, "userAdd.html") # 保存数据 def saveUser(request): username = request.GET.get('username') password = request.GET.get('password') User.objects.create(username=username, password=password) return redirect("/web/queryUsers") #打开修改页面 def openEdit(request): id = request.GET.get('id') # 到数据库查询用户信息 m = User.objects.filter(id=id).first() # 将数据发给页面 context = {"m": m} return render(request, "userEdit.html", context) #更新数据 def updateUser(request): id = request.GET.get('id') username = request.GET.get('username') password = request.GET.get('password') User.objects.filter(id=id).update(username=username, password=password) return redirect("/web/queryUsers") #删除数据 def deleteUser(request): id = request.GET.get('id') User.objects.filter(id=id).delete() return redirect("/web/queryUsers"第二步:编写html页面 在工程目录下的templates新建三张页面
users.html
编写代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>我的用户</title> </head> <a href="/web/openUserAdd" >添加</a> <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="/web/deleteUser?id={{ row.id }}">删除</a> | <a href="/web/openEdit?id={{ row.id }}">编辑</a> </td> </tr> {% endfor %} </tbody> </table> </body> </html>userAdd.html
编写代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <form action="/web/saveUser" method="GET"> {% csrf_token %} 账号:<input name="username"><br> 密码:<input name="password"><br> <input type="submit" value="添加"> </form> </body> </html>userEdit.html
编写代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <form action="/web/updateUser" method="GET"> {% csrf_token %} <input type="hidden" name="id" value="{{ m.id }}"> 账号:<input name="username" value="{{ m.username }}"><br> 密码:<input name="password" value="{{ m.password }}"><br> <input type="submit" value="提交"> </form> </body> </html>第三步:设置路由 在工程目录下,找到urls.py,添加如下代码:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('web/', include('myweb.adminurls')), ]第四步:启动工程 启动成功 第五步:测试 启动完成后,打开浏览器输入:http://localhost:8000/web/ 添加页面 删除页面 编辑页面 编辑内容如下: 编辑结果如下: