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操作CouchDB的方法
Oct 08 Python
python实现自动更换ip的方法
May 05 Python
定制FileField中的上传文件名称实例
Aug 23 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
代码分析Python地图坐标转换
Feb 08 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 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生成静态页面教程
2012/01/10 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
python修改字典内key对应值的方法
2015/07/11 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
Python reduce()函数的用法小结
2017/11/15 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
Python中pass的作用与使用教程
2020/11/13 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
《长相思》听课反思
2014/04/10 职场文书
产品质量保证书
2014/04/29 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
尊师重教主题班会
2015/08/14 职场文书