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 %}
django与mysql实现简单的增删查改的更多相关文章
- nodejs连接mysql并进行简单的增删查改
最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- mybatis实现简单的增删查改
接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...
- EF简单的增删查改
Add /// <summary> /// /// </summary> public void Add() { TestDBEntities2 testdb = new Te ...
- Django实现数据库中表格的增删查改
1.urls.py """Django_demo1 URL Configuration The `urlpatterns` list routes URLs to vie ...
- 一般处理程序+htm C#l简单的增删查改
首先引用两个文件一个dll: 数据库表已创建 首先编写数据读取部分 /// <summary> /// 查询 /// </summary> /// <param name ...
- RavenDb学习(二)简单的增删查改
在上一节当中已经介绍了RavenDb的文档设计模式,这一节我们要具体讲一讲如何使用api去访问RavenDb .连接RavenDb var documentStore = new DocumentSt ...
- Hibernate 的事物简单的增删查改
Hibernate 是一个优秀的ORM框架体现在: 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象.建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管 ...
- asp.net MVC最简单的增删查改!(详)
折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Vie ...
随机推荐
- HDOJ1796 How many integers can you find(dfs+容斥)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- LeetCode 210. Course Schedule II(拓扑排序-求有向图中是否存在环)
和LeetCode 207. Course Schedule(拓扑排序-求有向图中是否存在环)类似. 注意到.在for (auto p: prerequistites)中特判了输入中可能出现的平行边或 ...
- C语言——结构体的使用
C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. 1.建立一个结构体 struct 结构体名{ 成员列表 }; struct Date { int month; int da ...
- 【POJ 2096】 Collecting Bugs
[题目链接] http://poj.org/problem?id=2096 [算法] 概率DP [代码] #include <algorithm> #include <bitset& ...
- php !=和!==
今天测试了一下!=和!== <?phpheader("Content-type: text/html; charset=utf-8"); if (1!="1&quo ...
- Android源代码分支、版本号、支持设备列表
Build Branch Version Supported devicesOPD3.170816.023 android-8.0.0_r34 Oreo Pixel 2 XL, Pixel 2OPD1 ...
- mysql 强制修改密码
mysql忘记密码时强制修改步骤如下: 1.用命令编辑配置文件/etc/my.cnf 2.添加一条语句使其变为不用密码就能进入的状态 skip-grant-tables 3.保存并退出,然后再命令行输 ...
- 取消页面按钮的enter按下事件
<script src="../../@Javascript/jquery-1.8.1.js"></script> <script lan ...
- 定义maven的项目结构
创建一个Maven 的父项目 新建一个maven项目,选中create a simple project 填写以下内容: 如下内容: Group Id :edu.zipcloud.cloudstree ...
- 三.Windows I/O模型之事件选择(WSAEventSelect )模型
1.事件选择模型:和异步选择模型类似的是,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知.对于异步选择模型采用的网络事件来说,它们均可原封不动地移植到事件选择模型.事件选择模型和 ...