1-Django开端--学生管理系统

目录

项目结构

前端页面:

add_data.html

class_data.html

index.html

apps.py

models.py

views.py

settings,py

urls.py


...实现简略的身架...

项目结构

前端页面:

add_data.html

--添加数据.

{% extends 'index/index.html' %}{% block content %}
<div class="container"><form method="post">{% csrf_token %}<div class="form-group"><label for="exampleInputEmail1">添加班级</label><input type="text" class="form-control" id="exampleInputEmail1" name="grade"><button type="submit" class="btn btn-success">提交</button></div></form></div>
{% endblock %}

class_data.html

{% extends 'index/index.html' %}{% block css %}<style>h1 {color: red;}</style>
{% endblock %}{% block content %}<div class="container">{# 班级表 #}<div class="col-xs-3"><div style="margin-bottom: 10px"><button class="btn btn-success"><a href="/add/data/">添加信息</a></button></div><div class="panel panel-warning"><div class="panel-heading"><h3 class="panel-title">班级表</h3></div><div class="panel-body"><table class="table"><thead><tr><th>id</th><th>班级</th><th>操作</th></tr></thead><tbody>{% for data in data_list %}<tr><th>{{ data.id }}</th><td>{{ data.grade }}</td><td><a href="#">修改</a><a href="#">删除</a></td></tr>{% endfor %}</tbody></table></div></div></div>{# 学员表 #}<div class="col-xs-9"></div></div>{% endblock %}{% block js %}{% endblock %}


index.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title><link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">{% block css %}{% endblock %}<style>#threeD{font-size:20px; /*设置字体大小*/font-weight:800; /*设置字体粗细*/text-shadow:1px 0px #5c0099, 1px 2px #006615, 3px 1px #009916,2px 3px #006615, 4px 2px #990054, 4px 4px #006615,5px 3px #009916, 5px 5px #006615, 7px 4px #009916,6px 6px #006615, 8px 5px #009975, 7px 7px #006615,9px 6px #009916, 9px 8px #006615, 11px 7px #009916/*设置文字阴影*/}</style>
</head>
<body>
{#水平导航栏#}
<div class="navbar navbar-default"><div class="container"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a id="threeD" class="navbar-brand" href="/">卡塞尔学院</a></div><!-- Collect the nav links, forms, and other content for toggling --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li><a href="/class/data/">学生信息</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">校园风光 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li><li role="separator" class="divider"></li><li><a href="#">One more separated link</a></li></ul></li></ul><ul class="nav navbar-nav navbar-right">{# <li><a href="#">Link</a></li>#}<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">Sakura <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">退出登录</a></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid -->
</div>{% block content %}
{% endblock %}<script src="{% static 'js/jquery-3.7.1.js' %}"></script>
<script src="{% static 'js/bootstrap.js' %}"></script>
{% block js %}
{% endblock %}
</body>
</html>


apps.py

from django.apps import AppConfigclass DemoOneConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'demo_one'

--注册的app.


models.py

from django.db import models# Create your models here.class Grade(models.Model):grade = models.CharField(verbose_name="年级班级", max_length=12)# class_ = models.CharField(verbose_name="班级", max_length=12)class Student(models.Model):name = models.CharField(verbose_name="姓名", max_length=64)age = models.IntegerField(verbose_name="年龄")gender_choice = ((1, "男"),(2, "女"))gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choice)tel = models.IntegerField(verbose_name="电话")stu_id = models.IntegerField(verbose_name="学号")# 外键约束stu_grade = models.ForeignKey(to="Grade", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

--数据库的字段.


views.py

from django.shortcuts import render, redirect
from demo_one import models# Create your views here.
def index(request):return render(request, "index/index.html")# 展示班级以及学员
def class_data(request):data_list = models.Grade.objects.all()content = {"data_list": data_list}return render(request, "class_data/class_data.html", content)def add_data(request):if request.method == "GET":return render(request, "class_data/add_data.html")grade = request.POST.get("grade")models.Grade.objects.create(grade=grade)return redirect("/class/data/")

--app的视图函数.


settings,py


urls.py

--路由映射


 注册/配置 等不会的看前面的文章~


笔记:

1、Django项目开端

  • jquery之家:http://www.htmleaf.com/

1.1 班级学生表

  • 班级表
    年级班级
    一年级一班
    二年级一班
  • 学生表
    姓名年龄性别电话学号年级班级
    张三..
    李四..
    王五..
  • 表创建
    学生表关联班级表班级表删除信息1、学生跟着删除     CASCADE2、学生班级信息置空 SET_NULL外键约束to:当前字段关联的表to_field:根据主键关联on_delete:删除班级后,当前字段是删除(CASCADE)还是置空(SET_NULL)stu_grade = models.ForeignKey(to="Grade", to_field="id", on_delete=models.SET_NULL)
    性别1:男2:女
    from django.db import models
    ​
    ​
    # Create your models here.
    ​
    class Grade(models.Model):grade = models.CharField(verbose_name="年级班级", max_length=12)# class_ = models.CharField(verbose_name="班级", max_length=12)
    ​
    ​
    class Student(models.Model):name = models.CharField(verbose_name="姓名", max_length=64)age = models.IntegerField(verbose_name="年龄")gender_choice = ((1, "男"),(2, "女"))gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choice)tel = models.IntegerField(verbose_name="电话")stu_id = models.IntegerField(verbose_name="学号")# 外键约束stu_grade = models.ForeignKey(to="Grade", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

1.2 模板继承

  • 模板:index.html
    {% load static %}
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>首页</title><link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"><style>#threeD{font-size:20px; /*设置字体大小*/font-weight:800; /*设置字体粗细*/text-shadow:1px 0px #5c0099, 1px 2px #006615, 3px 1px #009916,2px 3px #006615, 4px 2px #990054, 4px 4px #006615,5px 3px #009916, 5px 5px #006615, 7px 4px #009916,6px 6px #006615, 8px 5px #009975, 7px 7px #006615,9px 6px #009916, 9px 8px #006615, 11px 7px #009916/*设置文字阴影*/}
    ​</style>
    </head>
    <body>
    {#水平导航栏#}
    <div class="navbar navbar-default"><div class="container"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a id="threeD" class="navbar-brand" href="/"卡塞尔学院</a></div>
    ​<!-- Collect the nav links, forms, and other content for toggling --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li><a href="#">学生信息</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">校园风光 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li><li role="separator" class="divider"></li><li><a href="#">One more separated link</a></li></ul></li></ul>
    ​<ul class="nav navbar-nav navbar-right">{# <li><a href="#">Link</a></li>#}<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">Sakura <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">退出登录</a></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid -->
    </div>
    ​
    ​
    <script src="{% static 'js/jquery-3.7.1.js' %}"></script>
    <script src="{% static 'js/bootstrap.js' %}"></script>
    ​
    </body>
    </html>
  • 继承语法
    {% extends 'index/index.html' %}
    ​
    模板当中占位
    {% block content %} 
    {% endblock %}
    ​
    其他文件当中
    {% block content %} 新的内容
    {% endblock %}
    ​
    • class_data.html
      {% extends 'index/index.html' %}
      ​
      添加新的css
      {% block css %}<style>h1 {color: red;}</style>
      {% endblock %}
      ​
      添加内容
      {% block content %}<div class="container"><div class="panel panel-warning"><div class="panel-heading"><h3 class="panel-title">班级表</h3></div><div class="panel-body"><table class="table"><caption>Optional table caption.</caption><thead><tr><th>#</th><th>First Name</th><th>Last Name</th><th>Username</th></tr></thead><tbody><tr><th scope="row">1</th><td>Mark</td><td>Otto</td><td>@mdo</td></tr><tr><th scope="row">2</th><td>Jacob</td><td>Thornton</td><td>@fat</td></tr><tr><th scope="row">3</th><td>Larry</td><td>the Bird</td><td>@twitter</td></tr></tbody></table></div></div></div>
      ​
      {% endblock %}
      ​
      添加新的js代码
      {% block js %}
      ​
      {% endblock %}

2、学员班级

2.1 学员班级展示

  • views.py
    def class_data(request):data_list = models.Grade.objects.all()content = {"data_list": data_list}return render(request, "class_data/class_data.html",content)
    ​

2.2 班级信息添加

  • views.py
    def add_data(request):if request.method == "GET":return render(request, "class_data/add_data.html")
    ​grade = request.POST.get("grade")models.Grade.objects.create(grade=grade)return redirect("/class/data/")

 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强化学习,第 2 部分:政策评估和改进

目录 一、介绍 二、关于此文章 三、求解贝尔曼方程 四、策略评估 4.1 更新变体 4.2 例描述 五、策略改进 5.1 V函数描述 5.2 政策改进定理 六、策略迭代 七、值迭代 7.1 算法描述 7.2 异步值迭代 八、广义策略迭代 九、结论 一、介绍 R强化学习是机器学习中的一…

C#子窗体嵌入主窗体

上位机开发中&#xff0c;经常会需要将子窗体嵌入到主窗体。 运行结果 核心实现&#xff1a; private void button2_Click(object sender, EventArgs e){Form3 childForm new Form3();//判断容器中是否已经打开子窗体&#xff0c;如果打开现将其关闭foreach (Control item in…

RocketMq源码解析三:路由管理

Nameserver的主要作用是为消息的生产者和消息消费者提供关于主题Topic的路由信息&#xff0c;那么Nameserver需要存储路由的基础信息&#xff0c;还要管理Broker节点&#xff0c;包括路由注册、路由删除等。 一、路由元数据 路由元数据主要保存了topic信息&#xff0c;broker信…

5.22 R语言-正态性检验

正态性检验 正态性检验的目的是确定一组数据是否符合正态分布&#xff08;也称高斯分布&#xff09;。在统计分析和数据建模中&#xff0c;正态性假设是许多统计方法和模型的基础。了解数据是否符合正态分布有助于选择适当的统计方法和确保分析结果的有效性。 本文主要从概率…

执法行动高压下,勒索软件攻击仍持续增加

执法行动 最近几年&#xff0c;随着网络犯罪特别是勒索软件犯罪的日益猖獗&#xff0c;勒索软件攻击已经对网络空间安全构成重大威胁。互联网不是法外之地&#xff0c;执法机构也对应加强了执法力度&#xff0c;对全球威胁重大的网络犯罪团伙进行重点打击。对勒索软件团伙所控…

golang、laravel对接stripe海外支付接口的总结和流程(通俗易懂)

目录 stripe是什么&#xff1f; 环境 配置后台 首先让管理员把你设置成为开发者 然后进入后台 然后你要创建产品&#xff0c;开单周期要写每天&#xff0c;我这里理解成每天都会有人买的 获取产品id 获取密钥&#xff0c;后续代码需要用到 支付代码 唤起支付页面 测…

甘肃省大学生志愿服务西部计划报名流程及免冠证件照处理

在甘肃省&#xff0c;大学生志愿服务西部计划是一项旨在鼓励和引导大学生参与西部地区社会服务与发展的重要项目。随着2024年报名季的到来&#xff0c;许多有志青年正准备投身这一有意义的事业。本文将详细介绍报名流程&#xff0c;并提供免冠证件照的处理技巧&#xff0c;帮助…

设计模式11——代理模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 代理模式&#xff08;Proxy&am…

每日AIGC最新进展(12):在舞蹈视频生成中将节拍与视觉相融合、Text-to-3D综述、通过内容感知形状调整进行 3D 形状增强

Diffusion Models专栏文章汇总&#xff1a;入门与实战 Dance Any Beat: Blending Beats with Visuals in Dance Video Generation https://DabFusion.github.io 本文提出了一种名为DabFusion的新型舞蹈视频生成模型&#xff0c;该模型能够根据给定的静态图像和音乐直接生成舞蹈…

免费 OSS 资源 Backblaze B2 使用最新指南

免费的对象存储资源日渐枯竭&#xff0c;Backblaze 是为数不多仍提供免费 OSS 的良心厂商。另外一个则是大名鼎鼎的 Cloudflare R2。虽然免费&#xff0c;但 Backblaze 也修改了政策&#xff1a;如果不验证信用卡的话是不能打开 Public 选项的&#xff0c;或者支付一美金。估计…

24.5.26(树链剖分板子,二分+线段树)

星期一&#xff1a; 补重庆科技 C 二分 牛客传送门 思路&#xff1a;二维前缀和表示到第 i个人第 j个弹巢开了多少发&#xff0c;和st【i】表示第 i个人开的是第几个弹巢 对于 l和r的查询&#xff0c;使用前缀和二分找出第一个…

【UE5.1 角色练习】06-角色发射火球-part1

前言 在上一篇&#xff08;【UE5.1 角色练习】05-火球发射物-CSDN博客&#xff09;基础上实现角色可以发射火球的技能 效果 步骤 一、准备 1. 打开角色蓝图&#xff0c;添加两个浮点型变量&#xff0c;分别表示当前的MP值和满状态的MP值 添加一个函数&#xff0c;这里命名…

解密 Alpha 勒索软件

Alpha 勒索软件很容易与 ALPHV 勒索软件混淆&#xff0c;但其实这是两个不同的勒索软件团伙。近期&#xff0c;Alpha 勒索软件团伙在暗网上建立了数据披露网站&#xff0c;并且对外公开了6个受害者。 通常来说&#xff0c;勒索软件运营者在启动数据披露网站前会保持攻击态势。一…

c++ 实现 梯度下降线性回归模型

理论与python实现部分 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation c代码 没能力实现反向传播求梯度&#xff0c;只能自己手动算导数了 #include <bits/stdc.h> #include <time.h> using namespace std;//y_hat X * W b // linreg 函数&#xff1a…

无经验求职者的福音:AI生成简历的便捷之道

第一步你需要先给自己写个简历&#xff0c;简历就是你求职时的一张脸&#xff0c;“漂亮”程度与否那可大了去了。一份漂亮的简历不仅内容满满当当突出重点&#xff0c;而且排版清晰亮眼&#xff0c;能让hr一下子捕捉到重点。 来看看一份漂亮的简历长啥样↓ 工作经历、个人能力…

Go语言

Go语言 Go语言全称Golanguage&#xff0c;Go&#xff08;又称 Golang&#xff09;是 Google 的 Robert Griesemer&#xff0c;Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译并发型语言。于2009年首次发布 官网 特点 简单易学&#xff1a;Go语言语法简洁明了&#x…

【C++】Vector的简易模拟与探索

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

04Django项目基本运行逻辑及模板资源套用

对应视频链接点击直达 Django项目用户管理及模板资源 对应视频链接点击直达1.基本运行逻辑Django的基本运行路线&#xff1a;视图views.py中的 纯操作、数据返回、页面渲染 2.模版套用1.寻找一个好的模版2.模板部署--修改适配联动 OVER&#xff0c;不会有人不会吧不会的加Q1394…

Java 类加载过程和双亲委派模型

Java 类加载过程概述 在 Java 中&#xff0c;类装载器把一个类装入 Java 虚拟机中&#xff0c;要经过三个步骤来完成&#xff1a;装载、链接和初始化&#xff0c;其中链接又可以分成校验、准备、解析 Java类加载过程分为如下步骤&#xff1a; 1.装载&#xff08; 加载&#xf…

Python编程-后端开发之Django5应用请求处理与模板基础

Python编程-后端开发之Django5应用请求处理与模板基础 最近写项目&#xff0c;刚好用到了Django&#xff0c;现在差不多闲下来&#xff0c;个人觉得单体项目来讲django确实舒服&#xff0c;故写此总结 模板语法了解即可&#xff0c;用到了再看&#xff0c;毕竟分离已经是主流操…