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入门篇之数字
Oct 20 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
pandas series序列转化为星期几的实例
Apr 11 Python
python 字符串和整数的转换方法
Jun 25 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Django项目后台不挂断运行的方法
Aug 31 Python
基于python 凸包问题的解决
Apr 16 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
python中有函数重载吗
May 28 Python
keras的三种模型实现与区别说明
Jul 03 Python
django models里数据表插入数据id自增操作
Jul 15 Python
Python必备技巧之字符数据操作详解
Mar 23 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
关于vue-router的那些事儿
2018/05/23 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python获得一个月有多少天的方法
2015/06/04 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
详解Python中的分支和循环结构
2020/02/11 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
python爬虫基础之urllib的使用
2020/12/31 Python
求高于平均分的学生学号及成绩
2016/09/01 面试题
学院书画协会部门岗位职责
2013/12/01 职场文书
公务员政审材料范文
2014/12/23 职场文书
家属慰问信
2015/02/14 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python