ORM学员管理系统单表查询示例

前期准备工作首先创建好一个项目一:必须使用MySQL创建一个库因为ORM只能对表和数据进行处理,所以库必须自己创建二:进行相关的配置一:二:三:四:五:三创建表必须注意一下俩点

大家好,又见面了,我是你们的朋友全栈君。

前期准备工作

首先创建好一个项目

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

一:必须使用MySQL创建一个库

因为ORM只能对表和数据进行处理,所以库必须自己创建

create  database  mysite;

二:进行相关的配置

在项目mysite的settings.py文件中进行

 一:

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

二:

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

三:

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

四:

 <span role="heading" aria-level="2">ORM学员管理系统单表查询示例

五:

三 创建表

必须注意一下俩点:

在app/models.py文件中创建一个类,对应的是数据库中的库,类名就是库名
创建的这个类必须继承models.Model

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

四:链接数据库

在项目的__init__.py文件中导入pymysql

<span role="heading" aria-level="2">ORM学员管理系统单表查询示例

五:执行相关命令

在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_list
        return 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://javaforall.net/124474.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot集成了哪些框架_redis java客户端

    springboot集成了哪些框架_redis java客户端Springboot集成Redis添加Redis依赖<depency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!–连接池–>

    2022年9月22日
    0
  • 三角形的重心_三角形重心的六条性质

    三角形的重心_三角形重心的六条性质重心的概念重心的性质

    2022年8月4日
    2
  • 公务员叫停年终奖_100个月年终奖

    公务员叫停年终奖_100个月年终奖年底红包,多少羡慕嫉妒恨  时光荏苒,岁月蹉跎。不知不觉间,2011年即将走过。忙碌了一年的人们,自进入12月便开始了年终奖的各种讨论及猜测。在贴吧,微博网友们纷纷以晒年终奖的方式品味着所有快乐以及忧愁。  2011年,通胀压力下物价节节攀高,进入下半年CPI指数有所下降,但消费支出压力丝毫没有得到缓解,特别是集中到年底流水似的花销更叫人隐隐作痛。在现实的生存压力之下,上班族对年终

    2022年9月13日
    0
  • php layer弹出层更改背景,详解Layer弹出层样式[通俗易懂]

    php layer弹出层更改背景,详解Layer弹出层样式[通俗易懂]前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的)。layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护、不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力。目前,layer已成为国内最多人使用的web弹层组件,GitHub自然…

    2022年7月13日
    13
  • mysql中phpmyadmin安装教程_特详细的PHPMYADMIN简明安装教程

    mysql中phpmyadmin安装教程_特详细的PHPMYADMIN简明安装教程特详细的PHPMYADMIN简明安装教程更新时间:2008年08月01日00:27:12作者:简单的说,phpmyadmin就是一种mysql的管理工具,安装该工具后,即可以通过web形式直接管理mysql数据,而不需要通过执行系统命令来管理,非常适合对数据库操作命令不熟悉的数据库管理者,下面我就说下怎么安装该工具:1.先到网上下载phpmyadmin,再解压到可以访问的web目录下(如果…

    2022年5月31日
    26
  • 因为计算机中丢失ssce5432.dll,ssce5432.dll 64位「建议收藏」

    因为计算机中丢失ssce5432.dll,ssce5432.dll 64位「建议收藏」ssce5432.dll64位是sentryspelling-checkerengine软件运行必不可少的文件,缺少这款文件将导致软件的部分功能无法实现,系统提示“ssce5432.dll找不到”或者“ssce5432.dll错误”等信息,本站提供ssce5432.dll64位下载,支持win7、win8、win10等系统,需要的朋友可以下载!ssce5432.dll使用方法:一、如果在运…

    2022年6月19日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号