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 相关文章推荐
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
Python类属性的延迟计算
Oct 22 Python
python 调用win32pai 操作cmd的方法
May 28 Python
Python基于回溯法子集树模板实现8皇后问题
Sep 01 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
Python快速排序算法实例分析
Nov 29 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
python字符串查找函数的用法详解
Jul 08 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
Python打包exe时各种异常处理方案总结
May 18 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
php中iconv函数使用方法
2008/05/24 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
js实现登录拖拽窗口
2020/02/10 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
微信跳一跳python代码实现
2018/01/05 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
小学安全工作汇报材料
2014/08/19 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
团代会开幕词
2015/01/28 职场文书
太空授课观后感
2015/06/17 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL