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的id()函数介绍
Feb 10 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
python从网络读取图片并直接进行处理的方法
May 22 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python解惑之整数比较详解
Apr 24 Python
使用Python设计一个代码统计工具
Apr 04 Python
Atom的python插件和常用插件说明
Jul 08 Python
python 变量初始化空列表的例子
Nov 28 Python
python 子类调用父类的构造函数实例
Mar 12 Python
Python colormap库的安装和使用详情
Oct 06 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
Python 如何实现文件自动去重
Jun 02 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 Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
Python魔术方法详解
2015/02/14 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
旅游专业职业生涯规划范文
2014/01/13 职场文书
学年末自我鉴定
2014/01/21 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
房屋转让协议书
2014/10/18 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
公司开会通知
2015/04/20 职场文书
生日宴会祝酒词
2015/08/10 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android