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中global与nonlocal比较
Nov 21 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python ansible服务及剧本编写
Dec 29 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
python return逻辑判断表达式实现解析
Dec 02 Python
基于python+selenium的二次封装的实现
Jan 06 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 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 feof用来识别文件末尾字符的方法
2010/08/01 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
vue eslint简要配置教程详解
2019/07/26 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
js实现日历
2020/11/07 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
在Django框架中运行Python应用全攻略
2015/07/17 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python类的动态修改的实例方法
2017/03/24 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
2015年组织委员工作总结
2015/04/23 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python