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记录详细调用堆栈日志的方法
May 05 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python实现排序算法解析
Sep 08 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
Python流程控制语句的深入讲解
Jun 15 Python
python退出循环的方法
Jun 18 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
Python中的 enumerate和zip详情
May 30 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
php的4种常用运行方式详解
2016/12/22 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
PDO::exec讲解
2019/01/28 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
python实现自动重启本程序的方法
2015/07/09 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
营业经理岗位职责
2013/11/10 职场文书
银行资信证明
2015/06/17 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js