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(班 ...
随机推荐
- centos上的grub文件修改
centos上的grub文件修改 author:headsen chen 2017-10-10 17:36:42 个人原创,转载请注明作者和出处,否则追究法律责任 1,centos6上的修改:vim ...
- pxe自动化批量安装系统(Centos7)
PXE:preboot execute environment 环境实现:主服务器ip:10.0.10.1 1 tfpt trivial简单文件共享服务,基于udp协议工作: 加载系统安装程序: 69 ...
- 利用sfc文件构建网络渗透
收集哈希 SCF(Shell命令文件)文件可用于执行一组有限的操作,例如显示Windows桌面或打开Windows资源管理器,这并不是什么新鲜事.然而,一个SCF文件可以用来访问一个特定的UNC路 ...
- 多个input连接在一起的时候如何实现输入一个数字跳入下一个
这个是页面内容 ,我分了12格子,作为一个12位的会员卡号的输入;其实就是12个input我把他们放在了一个div里面 这样配上背景图,看着是一个大的输入框. <div id="A ...
- 2.java.util.logging.Logger使用详解
一.java.util.logging.Logger简介 java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着, 其实 ...
- 【Python】 SSH连接的paramiko
paramiko *paramiko需要PyCrypto模块的支持 paramiko支持通过SSH协议进行一些操作,比如远程执行命令,上下传文件等等 用法: ① 远程命令 ssh = paramiko ...
- 【Linux】 文本比较工具 diff和cmp
Linux 文本比较工具 ■ diff命令 diff用于逐行比较两个文本文件,列出其不同之处 diff [option] <file1> <file2> file1和file2 ...
- 数据库 --> sqlite3总结
Sqlite3总结 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中. sqlite语句 #sqlite3 test.db //设置宽度为2sqlit ...
- java基础笔记(6)----面向对象的三大特性
简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...
- Python基本数据结构--列表
列表: 1.有序的集合: 2.通过偏移来索引,从而读取数据: 3.支持嵌套: 4.可变的类型: 列表的操作: 1.切片: a = [1,2,3,4,5,6,7] 正向索引 反向索引 默认索引 2.添加 ...