python/Django(增、删、改、查)操作

我们要通过pycharm中的Django模块连接MySQL数据库进行对数据的操作。

一、创建Django项目(每创建一个项目都要进行以下设置)

1、如图所示,创建一个Project

2、红色区域是创建的项目名称,蓝色区域是创建目录

 3、如上图,把设置中这个注释掉

4、在设置文件中设置HTML文件夹路径

5、设置完文件夹路径,创建一个文件夹

二、连接数据库进行操作

建议:创建一个文件夹存放python代码,最后导入到urls.py文件中,如图:

在urls.py文件中设置url和相应的函数:

1 urlpatterns = [
2     # url(r'^admin/', admin.site.urls),
3     url(r'^classes/', stter.classes),
4     url(r'^add_class/', stter.add_class),
5     url(r'^del_class/', stter.del_class),
6     url(r'^update_class/', stter.update_class),
7 ]

查看数据库class表的内容:

from django.shortcuts import render,redirect
##导入django模块下的返回方式和跳转模块
import pymysql
##导入pymysql模块
def classes(request):     ##定义查看数据库函数conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)cursor.execute('select * from class')class_list = cursor.fetchall()cursor.close()conn.close()return render(request,'classes.html',{'class_list':class_list})   返回给用户(经过classes.html和用户浏览器渲染内容){class_list}是传值到html中使用
------------------------------------------------------------------------
"D:\pycharm\PyCharm 2017.1\bin\runnerw.exe" D:\python3.6\python.exe E:/s4day65/manage.py runserver 8001
Performing system checks...System check identified no issues (0 silenced).You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 15, 2017 - 17:08:15
Django version 1.11.2, using settings 's4day65.settings'
Starting development server at http://127.0.0.1:8001/
Quit the server with CTRL-BREAK.
===============运行正常================

查看HTML代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <h1>班级列表</h1>
 9 <div>
10     <a href="/add_class/">添加</a>
11 </div>
12 <table>
13     <thead>
14     <tr>
15         <th>ID</th>
16         <th>班级名称</th>
17         <th>操作</th>
18     </tr>
19     </thead>
20
21 {% for row in class_list%}     for 循环
22     <tr>
23         <td>{{ row.cid }}</td>
24         <td>{{ row.cname }}</td>
25         <td>
26             <a href="/update_class/?nid={{ row.cid }}">编辑</a>
27             |
28             <a href="/del_class/?nid={{ row.cid }}">删除</a>
29         </td>
30     </tr>
31 {% endfor %}      结束for循环  (开始结束一定要共存)
32 </table>
33 </body>
34 </html>

运行效果:

添加:

 1 def add_class(request):   ##定义添加数据库函数
 2     if request.method == 'GET':
 3         return render(request,'add_class.html')
 4     else:
 5         print(request.POST)
 6         v=request.POST.get('cname')
 7         conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
 8         cursor = conn.cursor()
 9         cursor.execute("insert into class(cname) VALUES(%s)",[v,])
10         conn.commit()
11         cursor.close()
12         conn.close()
13         return redirect('/classes/')
14 ---------------------------------------------------------------
15 Performing system checks...
16
17 System check identified no issues (0 silenced).
18
19 You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
20 Run 'python manage.py migrate' to apply them.
21 June 15, 2017 - 17:08:15
22 Django version 1.11.2, using settings 's4day65.settings'
23 Starting development server at http://127.0.0.1:8001/
24 Quit the server with CTRL-BREAK.
25 [15/Jun/2017 17:10:00] "GET /classes/ HTTP/1.1" 200 1396
26 ===============================

添加的HTML代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <h1>添加班级</h1>
 9 <form method="POST" action="/add_class/">
10     <p>班级名称:<input type="text" name="cname"></p>
11     <input type="submit" value="提交">
12 </form>
13 </body>
14 </html>

运行结果:

删除:

1 def del_class(request):         ##定义删除数据库函数
2     nid=request.GET.get('nid')
3     conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
4     cursor = conn.cursor()
5     cursor.execute("delete from class WHERE cid=%s",[nid,])
6     conn.commit()
7     cursor.close()
8     conn.close()
9     return redirect('/classes/')

运行结果:

修改:

 1 def update_class(request):
 2     if request.method =='GET':
 3         nid = request.GET.get('nid')
 4         # name=request.POST.get('cname')
 5         conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
 6         cursor = conn.cursor()
 7         cursor.execute("select class.cid,class.cname from class where cid=%s", [nid,])
 8         ste = cursor.fetchone()
 9         return render(request, 'update_class.html', {'ste': ste})
10     else:
11         id=request.GET.get('nid')
12         name=request.POST.get('cname')
13         conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
14         cursor = conn.cursor()
15         cursor.execute("update class set cname=%s where cid = %s",[name,id,])
16         conn.commit()
17         cursor.close()
18         conn.close()
19         return redirect('/classes/')

修改HTML代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>班级修改</h1><form method="POST" action="/update_class/?nid={{ ste.0 }}"><p>班级名称:<input type="text" name="cname" value="{{ ste.1 }}"></p><input type="submit" value="提交">{#    </form>#}{#    {% for row in ste %}#}{#    <a>{{ row }}</a>#}{#    {% endfor %}#}</form>
</body>
</html>

运行效果:

转载于:https://www.cnblogs.com/guobaoyuan/p/7018970.html

python/Django(增、删、改、查)操作相关推荐

  1. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  2. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  3. mysql數據庫的增刪改查_MySQL數據庫之基礎增刪改查操作

    作者:        守望幸福 最后修改日期:2014-7-27 所操作的MySQL數據庫名:firstdb 所用的兩個表結構如下: student表 number name socre born_d ...

  4. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  5. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

  6. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

  7. 简单的php数据库操作类代码(增,删,改,查)

    数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...

  8. django一对多 增 删 改 查

    实现一对多表查询功能 项目代码: models.py from django.db import models# Create your models here.class Classes(model ...

  9. python_操作MySQL 初解 之__类方法调用并 增-删-改-查

    文件一: 调用(sqls文件) 1 # 导入模块 2 import pymysql 3 from sqls import * 4 # 创建类 5 class KaoShi(object): 6 7 # ...

  10. pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...

最新文章

  1. Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用
  2. Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
  3. Maven Jrebel 多模块热部署方案
  4. CR渲染器全景图如何渲染颜色通道_如何制作SSS材质
  5. html sql注入_Web安全-SQL注入(sqli-lab)
  6. 让KVM虚拟机支持console功能
  7. 【赠书活动】优雅免费领书指南
  8. apache ignite_从In Memory Data Grid,Apache Ignite快速入门
  9. Hadoop Exception in createBlockOutputStream
  10. RSTP原理和新增特性
  11. python语言字符串逆转顺序_Python字符串逐字符或逐词反转方法
  12. linux系统中看视频,怎么在linux里看视频啊?
  13. 【Steam】各种Steam致命错误-Steam需要在线进行更新什么意思。请确保你的网络连接正常,请重试。
  14. web前端设计--二级菜单栏
  15. nmake comment
  16. bug还没找到,程序员同志,快醒醒
  17. ogg在DDL语句同步时出现[Error code [942], ORA-00942的分析
  18. 人的感性是否也属于理性的一种
  19. arm架构linux系统平板电脑推荐,x86平板电脑排行_X86平板电脑推荐成垃圾,ARM架构平板电脑品牌是王道...
  20. 穷爸爸 富爸爸(Rich dad , Poor dad ) 读书笔记(第一课lesson 1)

热门文章

  1. maven设置本地仓库路径
  2. windos命令行设置网络
  3. E20170626-gg
  4. 浅谈PHP自动化代码审计技术
  5. WPF 3D:使用GeometryModel3D的BackMaterial
  6. hdu 1598 find the most comfortable road (并查集+枚举)
  7. MindManager 报错:Click to restart mindjet player 解决方法
  8. WF4.0 应用篇(四) IActivityToolboxService 自动化工具栏
  9. 鲍姆-韦尔奇算法 数学推导
  10. 中国房地产官媒爆乐视投资国贸地产,布局AI智能家居生态