ORM学员管理系统单表查询示例
前期准备工作
首先创建好一个项目
一:必须使用MySQL创建一个库
因为ORM只能对表和数据进行处理,所以库必须自己创建
create database mysite;
二:进行相关的配置
在项目mysite的settings.py文件中进行
一:
二:
三:
四:
五:
三 创建表
必须注意一下俩点:
在app/models.py文件中创建一个类,对应的是数据库中的库,类名就是库名
创建的这个类必须继承models.Model
四:链接数据库
在项目的__init__.py文件中导入pymysql
五:执行相关命令
在PyCharm中点击最下边的Terminal执行下面的俩条命令:1:python manage.py makemigrations 记录2:python manage.py migrate 翻译
正式编写程序
表结构
class Class(models.Model):id = models.AutoField(primary_key=True) # 主键cname = models.CharField(max_length=32) # 班级名称first_day = models.DateField() # 开班时间
查询班级
URL部分:
url(r'^class_list/$', views.class_list, name="class_list"),
视图部分:
def class_list(request):class_list = models.Class.objects.all()return render(request, "class_list.html", {"class_list": class_list})
HTML部分:
<table border="1">{% for class in class_list %}<tr><td>{{ forloop.counter }}</td><td>{{ class.id }}</td><td>{{ class.cname }}</td><td>{{ class.first_day|date:'Y-m-d' }}</td></tr>{% endfor %} </table>
新增班级
URL部分:
url(r'^add_class/$', views.add_class, name="add_class"),
视图部分:
def add_class(request):# 前端POST填好的新班级信息if request.method == "POST":cname = request.POST.get("cname")first_day = request.POST.get("first_day")# 还可以这么获取提交的数据,但不推荐这么写# data = request.POST.dict()# del data["csrfmiddlewaretoken"]# 创建新数据的两种方式# new_class = models.Class(cname=cname, first_day=first_day)# new_class.save()models.Class.objects.create(cname=cname, first_day=first_day)# 跳转到class_listreturn redirect(reverse('class_list'))# 返回添加班级的页面return render(request, "add_class.html")
HTML部分:
在班级列表页面添加一个a标签:
<a href="{% url 'add_class' %}">新页面添加</a>
新添加页面:
注意 {% csrf_token %} 和 date类型的input标签。
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>添加班级</title> </head> <body> <form action="{% url 'add_class' %}" method="post">{% csrf_token %}<p>班级名称:<input type="text" name="cname"></p><p>开班日期:<input type="date" name="first_day"></p><p>提交<input type="submit"></p> </form> </body> </html>
删除班级
URL部分:
url(r'^delete_class/$', views.delete_class, name="delete_class"),
视图部分:
def delete_class(request):class_id = request.GET.get("class_id")models.Class.objects.filter(id=class_id).delete()return redirect(reverse("class_list"))
HTML部分:
在班级列表页面的表格中添加删除。
<a href="{% url 'delete_class' %}?class_id={{ class.id }}">删除</a>
编辑班级
URL部分:
url(r'^edit_class/$', views.edit_class, name="edit_class"),
视图部分:
def edit_class(request):if request.method == "POST":class_id = request.POST.get("id")cname = request.POST.get("cname")first_day = request.POST.get("first_day")models.Class.objects.create(id=class_id, cname=cname, first_day=first_day)return redirect(reverse("class_list"))class_id = request.GET.get("class_id")class_obj = models.Class.objects.filter(id=class_id)if class_obj:class_obj = class_obj[0]return render(request, "edit_class.html", {"class": class_obj})# 找不到该条记录else:return redirect(reverse("class_list"))
HTML部分:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>编辑班级</title> </head> <body> <form action="{% url 'edit_class' %}" method="post">{% csrf_token %}<input type="text" value="{{ class.id }}" style="display: none"><p>班级名称:<input type="text" name="cname" value="{{ class.cname }}"></p><p>开班日期:<input type="date" name="first_day" value="{{ class.first_day|date:'Y-m-d' }}"></p><p>提交<input type="submit"></p> </form> </body> </html>
转载于:https://www.cnblogs.com/bypp/p/8635567.html
ORM学员管理系统单表查询示例相关推荐
- MySQL数据库之单表查询--示例
注释.*.条件查询.as取别名.比较-逻辑-算术运算符. and.or.模糊匹配(%._)--示例 1 /* 2 sql中有三种注释方式: 3 1.#:单行注释 4 2.--:代表单行注释,横杠后面要 ...
- Web框架之Django_05 模型层了解(单表查询、多表查询、聚合查询、分组查询)
阅读目录 一.Django ORM 常用字段和参数: 二.单表查询 三.多表查询 基于双下划线的多表查询 四.聚合查询和分组查询 摘要: 单表查询 多表查询 聚合查询 分组查询 一.Django OR ...
- ORM单表查询,跨表查询,分组查询
ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...
- 使用django创建一个单表查询的图书管理系统
使用django创建一个单表查询的图书管理系统 在settings.py文件中添加(用于连接mysql数据库) DATABASES = {'default': {'ENGINE': 'django.d ...
- python 表格查询_python单表查询
创建表 create table employee( id intnotnull unique auto_increment, name varchar(20) notnull, sex enum(' ...
- mysql 单表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字的执行优 ...
- mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序
MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...
- mysql数据库之单表查询
单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...
- 为什么强烈推荐你使用单表查询?(续篇)
在昨天的文章<为什么强烈建议你不要做联表查询?>中,大家提了一些比较有意义的问题,留言回复说不太清楚,今天单开这一篇做一些说明. 首先,在实际开发中,还是应该多使用单表查询,这样无论在性能 ...
最新文章
- 浅谈ES6原生Promise
- 笑死!“盒马”把自己的ID给玩没了...
- Informix IDS 11体系打点(918考试)认证指南,第 5 局部: 数据库管事器操作(4)
- Linux中断处理流程
- 使用supervisor启动hbase
- python把汉字转换为二进制数_在Python中,如何将8位二进制数转换为ASCII字符?
- 计算二叉树叶子节点的数目
- 开放下载 | 阿里妈妈技术年货来啦!
- 外部服务发现之 ingress(一) traefik 的安装使用
- PHP Mysql:时间函数
- 使用mouse without borders无界键盘鼠标工具实现一套键盘鼠标控制两台电脑(非常的奈斯)
- python代码颜色搭配_python配色_python 配色_python配色方案 - 云+社区 - 腾讯云
- [预警]WebSOC多漏洞插件检测 预防勒索病毒“Satan”新变种
- 交换机基础知识点思维导图
- excel 将两列数据合并,以逗号分隔
- maven工程报错:One or more constraints have not been satisfied
- 小众绿软|媒体:Soprano Audio Player v1.60
- Nginx学习笔记(反向代理搭建集群)
- Docker篇之镜像打标签tag
- TCP/IP——从wireshark看TCP(一)
热门文章
- 加速产业AI化!浪潮提出”元脑“生态计划,要用计算力+生态成就行业AI大脑...
- Mysql学习之order by的工作原理
- Spring Boot 入门之基础篇(一)
- NotePad++编译代码
- 使用LVS+TUN搭建集群实现负载均衡
- bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
- Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)
- java之ibatis数据缓存
- 第41周星期四及Spring学习小结
- 怎样将.dotnetcharting控件生成的图标打印