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系列之数据处理编程实例(一)
May 22 Python
Django发送html邮件的方法
May 26 Python
Python注释详解
Jun 01 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
基于pip install django失败时的解决方法
Jun 12 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
python线程里哪种模块比较适合
Aug 02 Python
python 带时区的日期格式化操作
Oct 23 Python
Python anaconda安装库命令详解
Oct 16 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
canvas时钟效果
2017/02/16 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
vue 中的动态传参和query传参操作
2020/11/09 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
python实现各进制转换的总结大全
2017/06/18 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python实现年会抽奖程序
2019/01/22 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
为什么要做架构设计
2015/07/08 面试题
《乌塔》教学反思
2014/02/17 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
社区灵活就业证明
2014/11/03 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书