python/Django(增、删、改、查)操作
python/Django(增、删、改、查)操作
我们要通过pycharm中的Django模块连接MySQL数据库进行对数据的操作。
一、创建Django项目(每创建一个项目都要进行以下设置)

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

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

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

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

5、设置完文件夹路径,创建一个文件夹
二、连接数据库进行操作
建议:创建一个文件夹存放python代码,最后导入到urls.py文件中,如图:

在urls.py文件中设置url和相应的函数:
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^classes/', stter.classes),
url(r'^add_class/', stter.add_class),
url(r'^del_class/', stter.del_class),
url(r'^update_class/', stter.update_class),
]
查看数据库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代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>班级列表</h1>
<div>
<a href="/add_class/">添加</a>
</div>
<table>
<thead>
<tr>
<th>ID</th>
<th>班级名称</th>
<th>操作</th>
</tr>
</thead> {% for row in class_list%} for 循环
<tr>
<td>{{ row.cid }}</td>
<td>{{ row.cname }}</td>
<td>
<a href="/update_class/?nid={{ row.cid }}">编辑</a>
|
<a href="/del_class/?nid={{ row.cid }}">删除</a>
</td>
</tr>
{% endfor %} 结束for循环 (开始结束一定要共存)
</table>
</body>
</html>
运行效果:

添加:
def add_class(request): ##定义添加数据库函数
if request.method == 'GET':
return render(request,'add_class.html')
else:
print(request.POST)
v=request.POST.get('cname')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
cursor = conn.cursor()
cursor.execute("insert into class(cname) VALUES(%s)",[v,])
conn.commit()
cursor.close()
conn.close()
return redirect('/classes/')
---------------------------------------------------------------
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.
[15/Jun/2017 17:10:00] "GET /classes/ HTTP/1.1" 200 1396
===============================
添加的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>添加班级</h1>
<form method="POST" action="/add_class/">
<p>班级名称:<input type="text" name="cname"></p>
<input type="submit" value="提交">
</form>
</body>
</html>
运行结果:


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

修改:
def update_class(request):
if request.method =='GET':
nid = request.GET.get('nid')
# name=request.POST.get('cname')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
cursor = conn.cursor()
cursor.execute("select class.cid,class.cname from class where cid=%s", [nid,])
ste = cursor.fetchone()
return render(request, 'update_class.html', {'ste': ste})
else:
id=request.GET.get('nid')
name=request.POST.get('cname')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', database='lian', charset='utf8')
cursor = conn.cursor()
cursor.execute("update class set cname=%s where cid = %s",[name,id,])
conn.commit()
cursor.close()
conn.close()
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>
运行效果:


python/Django(增、删、改、查)操作的更多相关文章
- 怎样从C#中打开数据库并进行 增 删 改 查 操作
首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
- django单表操作 增 删 改 查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
随机推荐
- linux下Tomcat 安装后执行startup.sh,出现– Cannot find …bin/catalina.sh
linux下Tomcat 安装后执行startup.sh,出现– Cannot find …bin/catalina.sh 是因为权限不够,执行以下命令就可以: chmod +x startup.sh ...
- TCHAR字符串查找&反向查找字符串
C++支持两种字符串,即常规的ANSI编码("字符串")和Unicode编码(L"字符串"),相应的就有两套字符串处理函数,比如:strlen和wcslen,分 ...
- 什么是DOM,DOM level 1\2\3 的区别是什么
DOM 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.Document Object Model的历史可以追溯至1990年 ...
- 关于java中的值传递与引用传递遇到的问题
来源于:https://www.nowcoder.com/test/question/done?tid=14302398&qid=25373#summary 下列java程序的输出结果为___ ...
- hosts文件路径及文件介绍
路径:WINDOWS/system32/drivers/etc/hosts 内容127.0.0.1 localhost 一. Hosts文件的位置 很多用户都知道在Window系统中有个H ...
- 移动端Web资源整合
meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...
- css3控制div上下跳动-效果图
效果图演示,源代码
- drbd(二):配置和使用
本文目录:1.drbd配置文件2.创建metadata区并计算metadata区的大小3.启动drbd4.实现drbd主从同步5.数据同步和主从角色切换6.drbd脑裂后的解决办法7.drbd多卷组配 ...
- SpringMVC之处理流程
之前在学servlet时写过JavaWeb与Asp.net工作原理比较分析,那篇主要是大致描述了下servlet的工作流程,今天在家了解了下springmvc的工作原理,与asp.net中的mvc进行 ...
- 2018上C语言程序设计(高级)作业- 第1次作业
未来两周学习内容 复习指针的定义和引用 指针的应用场景: 指针作为函数参数(角色互换) 指针作为函数的参数返回多个值 指针.数组和地址间的关系 使用指针进行数组操作 数组名(指针)作为函数参数(冒泡排 ...