django与mysql实现简单的增删查改


模型定义

from django.db import models

class Grades(models.Model):
    g_name = models.CharField(max_length=20)
    create_date = models.DateTimeField()
    girl_num = models.IntegerField()
    boy_num = models.IntegerField()
    isDelete = models.BooleanField(default=False)

    def __str__(self):
        return self.g_name

    class Meta:
        db_table = ‘grades‘

class Students(models.Model):
    s_name  = models.CharField(max_length=20)
    s_gender = models.BooleanField(default=True)
    s_age = models.IntegerField()
    conetend = models.CharField(max_length=20)
    isDlete = models.BooleanField(default=False)
    # 关联外键
    s_grade = models.ForeignKey("Grades")

    def __str__(self):
        return self.s_name

    class Meta:
        db_table = ‘students‘

url

from django.conf.urls import url
from user import views
urlpatterns = [

    url(r‘^show_info/‘,views.show_info,name=‘show_info‘),
    url(r‘^add_stu/‘,views.add_stu,name=‘add_stu‘),
    url(r‘^del_stu/(\d+)/‘,views.del_stu,name=‘del_stu‘),
    url(r‘^mod_stu/(\d+)/‘,views.mod_stu,name=‘mod_stu‘),
    url(r‘^sel_stu/‘,views.sel_stu,name=‘sel_stu‘),

]

视图函数定义

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.urls import reverse
from user.models import Students,Grades

def show_info(request):
    if request.method == ‘GET‘:
        stus = Students.objects.all()
        return render(request,‘info.html‘,{‘stus‘:stus})

def add_stu(request):
    if request.method == ‘GET‘:
        grades = Grades.objects.all()
        return render(request,‘add.html‘,{‘grades‘:grades})
    if request.method == ‘POST‘:
        name = request.POST.get(‘name‘)
        age = request.POST.get(‘age‘)
        gender = request.POST.get(‘sex‘)
        content = request.POST.get(‘msg‘)
        grade = request.POST.getlist(‘check‘)[0]
        sgrade = Grades.objects.get(g_name=grade)
        Students.objects.create(s_name=name,s_age=age,s_gender=gender,contend=content,s_grade=sgrade)
        return HttpResponseRedirect(reverse(‘user:show_info‘))

def del_stu(request,id):
    if request.method == ‘GET‘:
        Students.objects.get(pk=id).delete()
        return HttpResponseRedirect(reverse(‘user:show_info‘))

def mod_stu(request,id):
    if request.method == ‘GET‘:
        stu = Students.objects.get(pk=id)
        grades = Grades.objects.all()
        return render(request,‘mod.html‘,{‘stu‘:stu,‘grades‘:grades})
    if request.method == ‘POST‘:
        name = request.POST.get(‘name‘)
        age = request.POST.get(‘age‘)
        gender = request.POST.get(‘gender‘)
        grade = request.POST.getlist(‘check‘)[0]
        u_grade = Grades.objects.get(g_name=grade)
        Students.objects.filter(pk=id).update(s_name=name,s_age=age,s_gender=gender,s_grade=u_grade)
        return HttpResponseRedirect(reverse(‘user:show_info‘))

def sel_stu(request):
    if request.method == ‘GET‘:
        return render(request,‘sel.html‘)
    if request.method == ‘POST‘:
        name = request.POST.get(‘name‘)
        try:
            stu = Students.objects.get(s_name=name)
            return render(request, ‘sel.html‘, {‘stu‘: stu})
        except:
            return render(request,‘sel.html‘,{‘error‘:‘该学生不存在‘})

页面html定义

添加页


{% extends ‘base.html‘ %}
{% block content %}
    <form action="" method="post">
        {% csrf_token %}
        姓名:<input type="text" name="name">
        年龄:<input type="text" name="age">
        性别:<input type="text" name="sex">
        描述:<input type="text" name="msg">
        {% for grade in grades %}
            <input type="radio" name="check" value="{{grade.g_name}}">{{grade.g_name}}
        {% endfor %}
        <input type="submit" value="提交">
    </form>
{% endblock %}

修改页

{% extends ‘base.html‘ %}
{% block content %}
    <form action="" method="post">
        {% csrf_token %}
       姓名: <input type="text" name="name" value="{{stu.s_name}}">
       年龄: <input type="text" name="age" value="{{stu.s_age}}">
       性别: <input type="text" name="gender" value="{{stu.s_gender}}">
        {% for grade in grades %}
            <input type=‘radio‘ name="check" value="{{grade.g_name}}">{{grade.g_name}}
        {% endfor %}
        <input type="submit" value="修改">
    </form>

{% endblock %}

查询页

{% extends ‘base.html‘ %}
{% block content %}
    <form action="" method="post">
        {% csrf_token %}
        请输入学生姓名:<input type="text" name="name">
        <input type="submit" value="提交">
        <table border="1">
            <br>
        {% if stu %}
            <thead>
                <th align="center" style="color:red">序号</th>
                <th align="center" style="color:red">姓名</th>
                <th align="center" style="color:red">年龄</th>
                <th align="center" style="color:red">性别</th>
                <th align="center" style="color:red">简介</th>
                <th align="center" style="color:red">班级</th>
            </thead>
            <tbody>
                <tr>
                    <td align="center">{{stu.id}}</td>
                    <td align="center">{{stu.s_name}}</td>
                    <td align="center">{{stu.s_age}}</td>
                    <td align="center">{{stu.s_gender}}</td>
                    <td align="center">{{stu.contend}}</td>
                    <td align="center">{{stu.s_grade.g_name}}</td>
                </tr>
            </tbody>
        </table>
        {% endif %}
    </form>
<h1 style="color:red">{{error}}</h1>
{% endblock %}

信息页

{% extends ‘base.html‘ %}
{% block content %}
<table border="1">
    <thead>
        <th align="center" style="color:red">序号</th>
        <th align="center" style="color:red">姓名</th>
        <th align="center" style="color:red">年龄</th>
        <th align="center" style="color:red">性别</th>
        <th align="center" style="color:red">班级</th>
        <th align="center" style="color:red">班级成立时间</th>
        <th align="center" style="color:red">删除学生</th>
        <th align="center" style="color:red">修改学生</th>
    </thead>
    <tbody>
        {% for stu in stus %}
            <tr>
                <td align="center">{{forloop.counter}}</td>
                <td align="center">{{stu.s_name}}</td>
                <td align="center">{{stu.s_age}}</td>
                <td align="center">{{stu.s_gender}}</td>
                <td align="center">{{stu.s_grade.g_name}}</td>
                <td align="center">{{stu.s_grade.create_date}}</td>
                <td align="center"><a href="/user/del_stu/{{stu.id}}/">删除</a></td>
                <td align="center"><a href="/user/mod_stu/{{stu.id}}/">修改</a></td>
            </tr>
        {% endfor %}
    </tbody>
</table>
<a href="/user/add_stu/{{stu.id}}/">增加学生</a>
<a href="/user/sel_stu/{{stu.id}}/">查询学生</a>

{% endblock %}

原文地址:https://www.cnblogs.com/xcool/p/9903106.html

时间: 2024-07-29 23:57:44

django与mysql实现简单的增删查改的相关文章

Spring-Ldap连接Ldap及简单的增删查改

了解了Ldap的基本概念之后就是Ldap的使用问题了,就像连接MySQL数据库,操作MySQL数据库中数据一样,我们怎么连接到Ldap呢?又是怎么操纵ldap中的数据呢? 我也是不断的在网上查找资料,最终选择使用Spring-ldap进行数据库的连接,因为我的项目使用SpringMVC+Spring开发,直接就利用Spring-ldap了,挺简单的. 步骤一:依赖(maven工程) <!-- 添加Spring 对LDAP的支持 --> <dependency> <groupI

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

asp.net MVC最简单的增删查改!(详)

折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Views中添加视图 注意控制器lianxi和视图的名字要一致,然后视图我是添加了3个分别是Index,insert,Modify,在控制器里分别有三个对应的函数 每当用URL访问视图时,他就调用了controllers对应的方法,例如 jiaEntities 就是建立模式时那个数据链接的名字      

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

mybatis实现简单的增删查改

接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增删查改的功能. 首先,需要搭建一个demo,用于学习这个框架的使用方式.(1)在IDE上建立自己的工程目录,一个普通的java工程项目就好,我电脑本地的IDE是Myeclipse.(2)引入搭建框架需要的jar包,这个直接去网上搜索就好.(3)框架的核心实现都是基于配置的,引入jar包后,先配置my

Spring Boot集成ElasticSearch实现简单的增删查改接口

SpringBoot集成ElasticSearch pom.xml文件中,依赖的各jar包版本如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> &l

通过JDBC进行简单的增删查改

目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的

java--easyUI+struts+JSP实现简单的增删查改

1.数据库工具类 package com.xiaoxiong.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnUtil { //定义连接数据库参数 private static String drivers = "com.mysql.jdbc.Driver"; private static String url

java--easyUI+struts+JSP实现简单的增删查改(增)

1.entity类 package com.xiaoxiong.entity; public class Dept { private Integer deptno; private String dname; public Integer getDeptno() { return deptno; } public void setDeptno(Integer deptno) { this.deptno = deptno; } public String getDname() { return