django框架单表操作之增删改实例分析

本文实例讲述了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>

主页:

之后,根据不同的操作指向不同的页面,这部分功能需要修改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程序设计有所帮助。

(0)

相关推荐

  • django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】

    本文实例讲述了django框架使用views.py函数对表进行增删改查内容操作.分享给大家供大家参考,具体如下: models之对于表的创建有以下几种: 一对一:ForeignKey("Author",unique=True),  OneToOneField("Author") 一对多:ForeignKey(to="Publish",to_field="id",on_delete.CASCADE) 多对多:ManyToMany

  • Django中ORM表的创建和增删改查方法示例

    前言 Django作为重量级的Python web框架,在做项目时肯定少不了与数据库打交道,编程人员对数据库的语法简单的还行,但过多的数据库语句不是编程人员的重点对象.因此用ORM来操作数据库相当快捷.今天来介绍一下用ORM操作数据库. 一.创建Django项目 可以使用pycharme专业版直接快速创建.如果不是专业版也可以使用命令进行创建.下面列出命令行创建方式: django-admin startproject orm_test 这时会在当前目录创建文件夹名为orm_test,接下来进入

  • Django-Model数据库操作(增删改查、连表结构)详解

    一.数据库操作 1.创建model表 基本结构 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 更多字段: 1.models.AutoField 自增列= int(11)

  • 使用Django开发简单接口实现文章增删改查

    1.一些准备工作  安装django pip install django 创建django项目 进入项目代码存放目录执行命令: django-admin.py startproject blog_demo 进入blog_demo,运行命令: python3.6 manage.py runserver 9000 在浏览器地址栏打开:http://127.0.0.1:9000/ 如果出现以下画面,则说明服务器正在运行 创建博客应用(app) django中每一个app可以看作是一个模块,以app为

  • 利用Django提供的ModelForm增删改数据的方法

    上一篇我们写了Django基于类如何增删改数据的方法,方法虽然简单,但新手可能对其原理不是很清楚,那么我们这次就用Django提供的ModelForm方法来实现增删改数据,这是一种基于现有模型的增删改方法. 一个简单的例子加以说明,前提是你已经具备Django创建项目应用的基本知识: 01.首先创建一个简单的模型,模型只有三个文本字段,标题 title , 内容 text , 添加日期 date_added ,如下: # models.py from django.db import model

  • python Django连接MySQL数据库做增删改查

    1.下载安装MySQLdb类库http://www.djangoproject.com/r/python-mysql/2.修改settings.py 配置数据属性 复制代码 代码如下: DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.        'NAME': 'djang

  • Django数据库操作的实例(增删改查)

    创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_length=32) code = models.CharField(max_length=32) 1.增加 方法一 models.Business.objects.create(caption='市场部',code='123') 方法二 obj = models.UserInfo(caption='市场部',code='123') o

  • 对Django的restful用法详解(自带的增删改查)

    什么是rest REST是所有Web应用都应该遵守的架构设计指导原则. Representational State Transfer,翻译是"表现层状态转化". 面向资源是REST最明显的特征,对于同一个资源的一组不同的操作.资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词. REST要求,必须通过统一的接口来对资源执行各种操作.对于每个资源只能执行一组有限的操作. GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT(PATCH)用

  • python django 增删改查操作 数据库Mysql

    下面介绍一下django增删改查操作: 1.view.py # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse from polls.models import Test from django.shortcuts import render # Create your views here. # 解决乱码 import sys reload(sy

  • django框架单表操作之增删改实例分析

    本文实例讲述了django框架单表操作之增删改.分享给大家供大家参考,具体如下: 首先找到操作的首页面 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css"

  • Laravel框架实现model层的增删改查(CURD)操作示例

    本文实例讲述了Laravel框架实现model层的增删改查(CURD)操作.分享给大家供大家参考,具体如下: protected $table = 'user_city'; public $timestamps = false; //添加 返回id public function cityadd($data) { return $this->insertGetId($data); } //单条查找 public function getfind($id) { if($this->where('

  • CI框架(CodeIgniter)实现的数据库增删改查操作总结

    本文实例讲述了CI框架(CodeIgniter)实现的数据库增删改查操作.分享给大家供大家参考,具体如下: controllers下的 cquery.php文件 <?php class CQuery extends Controller { //构造函数 function CQuery() { parent::Controller(); // $this->load->database(); } function index() { //调用model 其中train为外层文件夹 MQu

  • Springboot引入hibernate配置自动建表并进行增删改查操作

    目录 前言 一.引入依赖 二.配置yml 三.写代码 四.测试结果 前言 有些业务比较复杂,比如我们需要新建10张表,每张表有10个字段,如果用手工来操作,肯定非常浪费时间,而且随着代码中对实体类的修改,还要同时修改数据库表,有时候写着写着就忘了,代码改了,数据库没改,这种问题使用 hibernate 的自动建表就好啦. 一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac

  • Hibernate单表操作实例解析

    单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是sequence,等等 操作的时候还是需要结合hibernate.cfg.xml文件的,因为数据库中的hbm2ddl.auto属性如果是update的时候,设置为主键自增是可以的:但是如果是create的时候,第二次如果不手工的改变,恐怕就要出BUG了. 基本类型 一般来说,按照Java的数据类型进行操作就可

  • layui+SSM的数据表的增删改实例(利用弹框添加、修改)

    本人前端知识相当于小白,初学SSM时,了解了layui前端框架,所以开始研究了数据表的增删改查,由于js.ajax知识不是很好,所以百度了相关ajax操作,用以借鉴.希望能帮助有需要的初学者,不喜勿喷,另外有相关不足,希望大家可以指出,谢谢! 注: 以下前端代码都是利用layui的框架,后台是SSM 前端: <%-- Created by IntelliJ IDEA. User: SL Date: 2019/2/26 Time: 14:03 To change this template use

  • Python使用pymysql模块操作mysql增删改查实例分析

    本文实例讲述了Python使用pymysql模块操作mysql增删改查.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123', db='t1', charset='utf8')

  • 使用Mybatis对数据库进行单表操作的实现示例

    简介 该篇文章主要是介绍如何使用MyBatis对Mysql数据库进行单表操作(对于mybatis的下载以及配置文件的作用和具体信息,我在上一篇文章中也已经提到了),使用的环境如下: JDK版本:1.8 编译器:IDEA2019 JDBC版本:8.0.18 mybatis版本:3.5.3 配置文件 首先需要有两个配置文件,一个是configuration.xml文件,配置的是连接数据库的环境以及对于mapper.xml文件的映射,还有另一个文件就是mapper.xml,这个文件主要是用来写sql语

  • Java 单链表数据结构的增删改查教程

    我就废话不多说了,大家还是直接看代码吧~ package 链表; /** * *1)单链表的插入.删除.查找操作: * 2)链表中存储的是int类型的数据: **/ public class SinglyLinkedList { private Node head = null; //查找操作 public Node findByValue(int value){ Node p = head; //从链表头部开始查找 while(p.next != null && p.data != va

  • Mybatis示例讲解注解开发中的单表操作

    目录 Mybatis注解开发单表操作 MyBatis的常用注解 MyBatis的增删改查 注解开发总结 常用注解 配置映射关系 练习项目代码 Mybatis注解开发单表操作 MyBatis的常用注解 Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了.我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作. 注解 说明 @Insert 实现新增 @Update 实现更新 @Delete 实现删除 @Select 实现查询 @Result 实现结果集封装 @Re

随机推荐