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(一)Python环境安装
Aug 20 Python
Python语法快速入门指南
Oct 12 Python
详解python中requirements.txt的一切
Mar 03 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Python微信公众号开发平台
Jan 25 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
Django 缓存配置Redis使用详解
Jul 23 Python
Django打印出在数据库中执行的语句问题
Jul 25 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
python中numpy数组与list相互转换实例方法
Jan 29 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中实现Javascript的escape()函数代码
2010/08/08 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
万能的php分页类
2017/07/06 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
phpwind放自动注册方法
2006/12/02 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
用vue写一个日历
2020/11/02 Javascript
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
前台文员的岗位职责
2013/11/14 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
运动会口号8字
2014/06/07 职场文书
青年志愿者活动方案
2014/08/17 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
运动会表扬稿
2015/01/16 职场文书
Python天气语音播报小助手
2021/09/25 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫