django框架单表操作之增删改实例分析


Posted in Python onDecember 16, 2019

本文实例讲述了django框架单表操作之增删改。分享给大家供大家参考,具体如下:

首先找到操作的首页面

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css" rel="external nofollow" >
  <title>书列表</title>
</head>
<body>
<div class="container">
  <a href="/add_book/" rel="external nofollow" class="btn btn-success">添加新书</a>
  <div class="panel panel-primary">
    <div class="panel-heading">书籍管理</div>
    <div class="panel-body">
      <table class="table table-bordered table-striped">
        <thead>
        <tr>
          <th>#</th>
          <th>书名</th>
          <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for book in book_list %}
          <tr data-id="{{ book.id }}">
            <td>{{ forloop.counter }}</td>
            <td>{{ book.title }}</td>
            <td><a href="/delete_book/?id={{ book.id }}" rel="external nofollow" class="btn btn-danger">删除</a>
            <a href="/edit_book/?id={{ book.id }}" rel="external nofollow" class="btn btn-info">修改</a></td>    此处的?id可以改成 ?iid,或者其他的名称,在views.py文件里对函数edit_book修改即可edit_id=request.GET.get('iid')
 </tr> {% endfor %} </tbody> </table> </div> </div> </div> </body> </html>

django框架单表操作之增删改实例分析

主页:

django框架单表操作之增删改实例分析

之后,根据不同的操作指向不同的页面,这部分功能需要修改urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
  # url(r'^admin/', admin.site.urls),
  url(r'^home/',views.home),
  url(r'^index/',views.index),
  url(r'^login/',views.login),
  url(r'^book_list/',views.book_list),
  #添加新书
  url('^add_book/',views.add_book),
  #删除书籍
  url('^delete_book/',views.delete_book),
  #修改书籍
  url(r'^edit_book/',views.edit_book),
]

其次,不同操作指向不同的页面

add_book.html

主要的部分

<form class="form-horizontal" action="/add_book/" method="post"> #提交到 add_book
          <div class="form-group">
            <label for="inputbookname" class="col-sm-2 control-label">书籍名称</label>
            <div class="col-sm-3">
              <input type="text" class="form-control" id="inputbookname" name="book_name"> 
            </div>
          </div>
          <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
              <button type="submit" class="btn btn-default">添加新书</button>

edit_book.html

主要部分

<form class="form-horizontal" action="/edit_book/" method="post">
  <input hidden type="text" name="book_id" value="{{ book.id }}">
  <div class="form-group">
    <label for="inputbookname" class="col-sm-2 control-label">书籍名称</label>
    <div class="col-sm-3">
      <input type="text" class="form-control" id="inputbookname" name="book_name" value="{{ book.title }}">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">提交修改</button>

删除在后台执行

最后后台函数的配置views.py

def book_list(request):
  #找到所有的书
  books=models.Book.objects.all()
  return render(request,"book_list.html",{"book_list":books})
def add_book(request):
  #判断是否为post
  if request.method=="POST":
    new_book_name=request.POST.get("book_name")
    #去数据库创建一条记录
    models.Book.objects.create(title=new_book_name)
    #跳转回之前书籍展示的页面
    return redirect("/book_list/")
  #返回一个页面让用户填写新书的相关信息
  return render(request,"add_book.html")
def delete_book(request):
  #取到要删除书的id,如何从get请求获取数据
  delete_id=request.GET.get("id")
  #根据id值去数据库取对应的数据
  models.Book.objects.get(id=delete_id).delete()
  return redirect("/book_list/")
def edit_book(request):
  if request.method=="POST":
    #取到书的id
    book_id=request.POST.get("book_id")
    #用户修改后的名称
    new_book_title=request.POST.get("book_name")
    #在数据库中查找id对应的记录
    book_obj= models.Book.objects.get(id=book_id)
    #将用户的名称给修改到这个id中
    book_obj.title=new_book_title
    #保存提交
    book_obj.save()
    #跳转到书列表的页面
    return redirect("/book_list/")
  edit_id=request.GET.get('id')
  book=models.Book.objects.get(id=edit_id)
  return render(request,"edit_book.html",{"book":book}) #以字典的方式传递变量
#note:
# 对书籍进行编辑,是通过book_list页面传递id(或者iid),在对上面的函数获取其id时得到edit_id,知道其id和title就可以进行修改

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Python3.6 Schedule模块定时任务(实例讲解)
Nov 09 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python版DDOS攻击脚本
Jun 12 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
Python 共享变量加锁、释放详解
Aug 28 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
解决django model修改添加字段报错的问题
Nov 18 Python
Python: 传递列表副本方式
Dec 19 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
python实现mean-shift聚类算法
Jun 10 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 #Python
Python列表切片常用操作实例解析
Dec 16 #Python
python之pymysql模块简单应用示例代码
Dec 16 #Python
python装饰器使用实例详解
Dec 14 #Python
python函数不定长参数使用方法解析
Dec 14 #Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 #Python
python模块和包的应用BASE_PATH使用解析
Dec 14 #Python
You might like
mysql中存储过程、函数的一些问题
2007/02/14 PHP
PHP中的extract的作用分析
2008/04/09 PHP
php daodb插入、更新与删除数据
2009/03/19 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
简单了解python变量的作用域
2019/07/30 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
JSF界面控制层技术
2013/06/17 面试题
银行个人求职自荐信范文
2013/12/16 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
中文专业求职信
2014/06/20 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
组工干部对照检查材料
2014/08/25 职场文书
复兴之路观后感
2015/06/02 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android
Redis主从复制操作和配置详情
2022/09/23 Redis