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在多玩图片上下载妹子图的实现代码
Aug 13 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
Python序列之list和tuple常用方法以及注意事项
Jan 09 Python
python中split方法用法分析
Apr 17 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
python执行使用shell命令方法分享
Nov 08 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
Python算法中的时间复杂度问题
Nov 19 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
详解python日志输出使用配置文件格式
Feb 10 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
phpmail类发送邮件函数代码
2012/02/20 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP引用返回用法示例
2016/05/28 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
户外用品商店创业计划书
2014/01/29 职场文书
赔偿协议书范本
2014/04/15 职场文书
社区创先争优承诺书
2014/08/30 职场文书
2014年外联部工作总结
2014/11/17 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
python_tkinter弹出对话框创建
2022/03/20 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python