前期准备工作

首先创建好一个项目

一:必须使用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学员管理系统单表查询示例相关推荐

  1. MySQL数据库之单表查询--示例

    注释.*.条件查询.as取别名.比较-逻辑-算术运算符. and.or.模糊匹配(%._)--示例 1 /* 2 sql中有三种注释方式: 3 1.#:单行注释 4 2.--:代表单行注释,横杠后面要 ...

  2. Web框架之Django_05 模型层了解(单表查询、多表查询、聚合查询、分组查询)

    阅读目录 一.Django ORM 常用字段和参数: 二.单表查询 三.多表查询 基于双下划线的多表查询 四.聚合查询和分组查询 摘要: 单表查询 多表查询 聚合查询 分组查询 一.Django OR ...

  3. ORM单表查询,跨表查询,分组查询

    ORM单表查询,跨表查询,分组查询 单表查询之下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值models.T ...

  4. 使用django创建一个单表查询的图书管理系统

    使用django创建一个单表查询的图书管理系统 在settings.py文件中添加(用于连接mysql数据库) DATABASES = {'default': {'ENGINE': 'django.d ...

  5. python 表格查询_python单表查询

    创建表 create table employee( id intnotnull unique auto_increment, name varchar(20) notnull, sex enum(' ...

  6. mysql 单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名WHERE 条件GROUP BY fieldHAVING 筛选ORDER BY fieldLIMIT 限制条数 二 关键字的执行优 ...

  7. mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

  8. mysql数据库之单表查询

    单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...

  9. 为什么强烈推荐你使用单表查询?(续篇)

    在昨天的文章<为什么强烈建议你不要做联表查询?>中,大家提了一些比较有意义的问题,留言回复说不太清楚,今天单开这一篇做一些说明. 首先,在实际开发中,还是应该多使用单表查询,这样无论在性能 ...

最新文章

  1. 浅谈ES6原生Promise
  2. 笑死!“盒马”把自己的ID给玩没了...
  3. Informix IDS 11体系打点(918考试)认证指南,第 5 局部: 数据库管事器操作(4)
  4. Linux中断处理流程
  5. 使用supervisor启动hbase
  6. python把汉字转换为二进制数_在Python中,如何将8位二进制数转换为ASCII字符?
  7. 计算二叉树叶子节点的数目
  8. 开放下载 | 阿里妈妈技术年货来啦!
  9. 外部服务发现之 ingress(一) traefik 的安装使用
  10. PHP Mysql:时间函数
  11. 使用mouse without borders无界键盘鼠标工具实现一套键盘鼠标控制两台电脑(非常的奈斯)
  12. python代码颜色搭配_python配色_python 配色_python配色方案 - 云+社区 - 腾讯云
  13. [预警]WebSOC多漏洞插件检测 预防勒索病毒“Satan”新变种
  14. 交换机基础知识点思维导图
  15. excel 将两列数据合并,以逗号分隔
  16. maven工程报错:One or more constraints have not been satisfied
  17. 小众绿软|媒体:Soprano Audio Player v1.60
  18. Nginx学习笔记(反向代理搭建集群)
  19. Docker篇之镜像打标签tag
  20. TCP/IP——从wireshark看TCP(一)

热门文章

  1. 加速产业AI化!浪潮提出”元脑“生态计划,要用计算力+生态成就行业AI大脑...
  2. Mysql学习之order by的工作原理
  3. Spring Boot 入门之基础篇(一)
  4. NotePad++编译代码
  5. 使用LVS+TUN搭建集群实现负载均衡
  6. bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
  7. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)
  8. java之ibatis数据缓存
  9. 第41周星期四及Spring学习小结
  10. 怎样将.dotnetcharting控件生成的图标打印