模型定义

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 %}

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

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

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  2. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  3. mybatis实现简单的增删查改

    接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...

  4. EF简单的增删查改

    Add /// <summary> /// /// </summary> public void Add() { TestDBEntities2 testdb = new Te ...

  5. Django实现数据库中表格的增删查改

    1.urls.py """Django_demo1 URL Configuration The `urlpatterns` list routes URLs to vie ...

  6. 一般处理程序+htm C#l简单的增删查改

    首先引用两个文件一个dll: 数据库表已创建 首先编写数据读取部分 /// <summary> /// 查询 /// </summary> /// <param name ...

  7. RavenDb学习(二)简单的增删查改

    在上一节当中已经介绍了RavenDb的文档设计模式,这一节我们要具体讲一讲如何使用api去访问RavenDb .连接RavenDb var documentStore = new DocumentSt ...

  8. Hibernate 的事物简单的增删查改

    Hibernate 是一个优秀的ORM框架体现在: 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象.建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管 ...

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

    折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Vie ...

随机推荐

  1. HDU 1466

    经典DP,这样的递推确实有点难. 把所有直线分成两组,可以知道 m条直线的交点方案数 =(m-r)条平行线与r条直线交叉的交点数  + r条直线本身的交点方案 亦就是  =(m-r)*r+r条之间本身 ...

  2. 【网络协议】ICMP协议、Ping、Traceroute

        ICMP协议 ICMP常常被觉得是IP层的一个组成部分,它是网络层的一个协议.它传递差错报文以及其它须要注意的信息.ICMP报文通常被IP层或更高层(TCP.UDP等)使用,它是在IP数据报内 ...

  3. 创建MFC应用程序的类型:单文档+多文档+基于对话框

    单文档支持文档视图架构.数据的保存--(读取--改动)文档类功能--显示(视图类功能),比較方便. 基于对话框,主窗体是对话框类型.能够方便的使用控件,所见即所得的编程,比較方便. 单文档类似&quo ...

  4. 杂项-SpringEureka:笔记-1

    ylbtech-杂项-SpringEureka:笔记-1 1.返回顶部 1. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT ...

  5. Linux系统查看当前时间的命令

    转自:https://www.cnblogs.com/redfire/p/7702213.html 一.查看和修改Linux的时区1. 查看当前时区命令 : "date -R"2. ...

  6. 深入理解 python 元类

    一.什么的元类 # 思考: # Python 中对象是由实例化类得来的,那么类又是怎么得到的呢? # 疑问: # python 中一切皆对象,那么类是否也是对象?如果是,那么它又是那个类实例化而来的呢 ...

  7. python print 显示不同的字体

    显示格式: print('\033[显示方式;字体颜色;背景色m.....\033[0m') ------------------------------- 显示方式 | 效果 ----------- ...

  8. JDBC基础02

    今日知识 1. sql注入问题2. jdbc批处理3. 事务 SQL注入问题解决 1.什么是sql注入. * 用户通过相关的特殊关键字sql语句非法访问数据库 *例如: Xxx(' or '1'='1 ...

  9. POJ 3613 floyd+矩阵快速幂

    题意: 求s到e恰好经过n边的最短路 思路: 这题已经被我放了好长时间了. 原来是不会矩阵乘法,快速幂什么的也一知半解 现在终于稍微明白了点了 其实就是把矩阵乘法稍微改改 改成能够满足结合律的矩阵&q ...

  10. .net 获取当前网页的的url

    正确的方法是:HttpContext.Current.Request.Url.PathAndQuery1.通过ASP.NET获取 如果测试的url地址是http://www.test.com/test ...