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(班 ...
随机推荐
- 【redis源码阅读】redis对象
结构定义 在redis中,对象的数据结构定义如下: typedef struct redisObject { unsigned type:4; unsgined encoding:4; uns ...
- Spark Streaming高级特性在NDCG计算实践
从storm到spark streaming,再到flink,流式计算得到长足发展, 依托于spark平台的spark streaming走出了一条自己的路,其借鉴了spark批处理架构,通过批处理方 ...
- Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)
Java虚拟机运行时栈帧结构(周志明书上P237页) 栈帧是什么? 栈帧是一种数据结构,用于虚拟机进行方法的调用和执行. 栈帧是虚拟机栈的栈元素,也就是入栈和出栈的一个单元. 2018.1.2更新(在 ...
- 在线资源--图片/json等
1. 在线图片: http://image.zhangxinxu.com/image/study/s/s256/mm3.jpg // mmX.jpg: X可为任意的数字 2. 在线json: 雅虎天 ...
- Java爬虫爬取网站电影下载链接
之前有看过一段时间爬虫,了解了爬虫的原理,以及一些实现的方法,本项目完成于半年前,一直放在那里,现在和大家分享出来. 网络爬虫简单的原理就是把程序想象成为一个小虫子,一旦进去了一个大门,这个小虫子就像 ...
- 【BootStrap】 布局组件 II
BootStrap 布局组件 II ■ 分页 BS中通过.pagination的ul元素来实现一个分页集合,一个典型的分页如下: <ul class="pagination" ...
- C语言描述二叉树的实现及操作(链表实现)
概述 二叉树为每个节点最多有两个儿子节点(左儿子节点和右儿子节点)的树. 前序遍历:根结点 ---> 左子树 ---> 右子树. 中序遍历:左子树---> 根结点 ---&g ...
- docker 学习之一:docker 安装
核心概念1. 镜像是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等 ...
- [CentOS] SSH 免密钥登录
一.环境说明: 操作系统:CentOS-7-x86_64-Minimal-1611 虚拟机:VMware® Workstation 12 Pro:12.5.5 build-5234757 服务器:no ...
- spring学习笔记一 入门及配置
Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的.主要优势之一就是其分层架构.Spring的核心是控制反转和面向切面.简单来说,Spring是一个分层的一站式轻量级开源框架. 使用Sp ...