django---单表操作之增删改
首先找到操作的首页面‘
代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
<title>书列表</title>
</head>
<body>
<div class="container"> <a href="/add_book/" 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 }}" class="btn btn-danger">删除</a>
<a href="/edit_book/?id={{ book.id }}" 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>
主页:
之后,根据不同的操作指向不同的页面,这部分功能需要修改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---单表操作之增删改的更多相关文章
- Django---ORM简介丶单表操作丶增删改查
一丶ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- Django【第6篇】:Django之ORM单表操作(增删改查)
django之数据库表的单表查询 一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name =& ...
- django单表操作,增、删、改、查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
- hibernate_07_单表操作_增删改操作
首先,创建类对象 package com.imooc.hibernate; public class Address { private String postcode; //邮编 private S ...
- Django单表操作
一.数据库相关设置 配置ORM的loggers日志: # 配置ORM的loggers日志 LOGGING = { 'version': 1, 'disable_existing_loggers': F ...
- SQLAlchemy表操作和增删改查
一.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数 ...
- Maven+SSM框架,实现单表简单的增删改查
目录 1.创建web Maven项目 2.创建java源码文件和resources资源文件 3.创建数据库配置文件:jdbc.properties 4.项目总体目录: 5.添加spring配置文件:a ...
- django单表操作 增 删 改 查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
- C语言,单链表操作(增删改查)(version 0.1)
这天要面试,提前把链表操作重新写了一遍.备份一下,以备不时之需. 希望有人能看到这篇代码,并指正. // File Name : list.h #include "stdafx.h" ...
随机推荐
- 如何编译运行HanLP自然语言处理包
master分支 对于master分支,编译方法如下: git clone https://github.com/hankcs/HanLP.git mvn install -DskipTests · ...
- C#语法中一个问号(?)和两个问号(??)的运算符
(1).C#语法中一个个问号(?)的运算符是指:可以为 null 的类型. MSDN上面的解释: 在处理数据库和其他包含不可赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型以及日期类型的功 ...
- C#:单元测试(VS2015)
根据VS2015的提示,仅支持在共有类或共有方法中支持创建单元测试.所以,如果我们要测试私有或是保护的类和方法,是要先将他们暂时设定成公有类型. 在VS2015中创建单元测试,只要在我们想测试的地方点 ...
- nginx的url规则小tips
背景信息: 被代理的服务器(10.90.7.2)上,nginx的配置内容 server { listen ; server_name localhost; default_type text/html ...
- 企业数据总线(ESB)和注册服务管理(dubbo)的区别
企业数据总线(ESB)和注册服务管理(dubbo)的区别 转载 2015年11月04日 09:05:14 7607 企业数据总线(ESB)和注册服务管理(dubbo)的区别 2015-03-09 0 ...
- java.lang.OutOfMemoryError: Java heap space解决方法 (有问题咨询加微信)
支付宝扫码领取最高99元红包,到店支付15天,双十二瓜分15亿,打开支付宝首页搜“555176706”领红包,领到大红包的小伙伴赶紧使用哦! //首先检查程序有没有限入死循环 这个问题主要还是由这个问 ...
- 最短路径算法——Dijkstra算法与Floyd算法
转自:https://www.cnblogs.com/smile233/p/8303673.html 最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径. AE:1 ADE:2 ...
- CheckFail设计很垃圾
function checkFail(node, onError, fuckIE) { var id = node.src;//检测是否死链 node.onlo ...
- PHP echo()、print()、print_r()、var_dump()、var_export()的区别
PHP中echo.print.print_r.var_dump.var_export的用法与区别 这些均为输出变量的内容: echo();不是函数.是PHP语句.没有返回值:输出一个或者多个字符串或者 ...
- jquery 中prop和 attr
prop就是给html中元素固有的属性赋值 而attr是给元素定义新的属性值.