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.rhkb.cn/news/332184.html

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

相关文章

关于数据库和数据表的基础SQL

目录 一. 数据库的基础SQL 1. 创建数据库 2. 查看当前有哪些数据库 3. 选中数据库 4. 删除数据库 5. 小结 二. 数据表的基础SQL 1. 创建数据表 2. 查看当前数据库中有哪些表 3. 查看指定表的详细情况(查看表的结构) 4. 删除表 5. 小结 一. 数据库的基础SQL 1. 创建…

设计模式八股文

什么是设计模式&#xff1f; 设计模式是软件开发过程中经常遇到的问题的通用解决方案。类似于前人总结的经验&#xff0c;遇到相似问题的时候有个参考。 设计模式七大基本原则&#xff1f; 单一职责&#xff1a;一个类应该只作一件事情。将功能分为小的独立的单元。开放封闭…

springboot3微服务下结合springsecurity的认证授权实现

1. 简介 在微服务架构中&#xff0c;系统被拆分成许多小型、独立的服务&#xff0c;每个服务负责一个功能模块。这种架构风格带来了一系列的优势&#xff0c;如服务的独立性、弹性、可伸缩性等。然而&#xff0c;它也带来了一些挑战&#xff0c;特别是在安全性方面。这时候就体…

来自Java的“菱形继承“,你听说过吗?

一、菱形继承的概念 菱形继承又叫做钻石继承&#xff0c;指的是不同的类同时继承自相同的父类&#xff0c;存在一个子类同时继承这些不同的类&#xff0c;即我们常说的“多继承”问题。 例如&#xff1a;B类和C类分别继承A类&#xff0c;而D类同时继承B类和C类。 如此图所示 二…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十三)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们&#xff0c;继续讲一…

Unity | 框架MVC

目录 一、MVC介绍 二、搭建UI界面 三、代码实现 1.Model层 2.View层 3.Controller层 四、MVC框架测试 五、知识补充 一、MVC介绍 model&#xff1a;数据层。界面展示的数据&#xff08;需要进行初始化、更新、保存、事件通知等操作&#xff09;&#xff0c;单例模式&am…

React中显示数据

SX 会让你把标签放到 JavaScript 中。而大括号会让你 “回到” JavaScript 中&#xff0c;这样你就可以从你的代码中嵌入一些变量并展示给用户。例如&#xff0c;这将显示 user.name&#xff1a; return (<h1>{user.name}</h1> ); 你还可以将 JSX 属性 “转义到 …

宁夏银川、山东济南、中国最厉害的改名大师的老师颜廷利教授的前沿思想观点

在当代社会&#xff0c;一个响亮的声音穿越了传统的迷雾&#xff0c;它来自东方哲学的殿堂&#xff0c;由一位现代学者颜廷利教授所发出。他的话语&#xff0c;如同一股清泉&#xff0c;在混沌的世界里激荡着思考的波澜&#xff1a;"有‘智’不在年高&#xff0c;无‘智’…

嵌入式之音频基础知识

声音特性 1、响度&#xff1a;人主观上感觉声音的大小&#xff08;俗称音量&#xff09;&#xff0c;由“振幅”和人离声源的距离决定&#xff0c;振幅越大响度越大&#xff0c;人和声源的距离越小&#xff0c;响度越大&#xff1b; 2、音调&#xff1a;声音的高低&#xff0…

无人机反制:光电干扰一体设备技术详解

一、光电干扰技术原理 光电干扰技术是一种利用光学和电子技术手段对无人机实施干扰和控制的先进技术。该技术通过向无人机发射特定频率和强度的光信号或电磁信号&#xff0c;干扰无人机的视觉系统、控制系统或通信链路&#xff0c;进而达到反制无人机的目的。光电干扰技术具有…

world machine学习笔记(4)

选择设备&#xff1a; select acpect&#xff1a; heading&#xff1a;太阳的方向 elevation&#xff1a;太阳的高度 select colour&#xff1a;选择颜色 select convexity&#xff1a;选择突起&#xff08;曲率&#xff09; select height&#xff1a;选择高度 falloff&a…

neo4j开放远程连接

注&#xff1a;本博客所用neo4j版本为社区5.12版 第一步&#xff1a;修改neo4j配置文件 首先找到neo4j的安装位置&#xff0c;点击进入conf文件夹&#xff0c;随后点击neo4j.conf文件&#xff0c;在“Network connector configuration”下面的单元中找到server.default_liste…

7款好用到离谱的神级App推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 转眼间&#xff0c;2024年已经是下个月。最近有很多小伙伴的咨询&#xff0c;我也赶紧整理了7款好用的软件&#xff0c;希望对大家有所帮助。 …

Elasticsearch 分析器(内置分析器,自定义分析器,IK分析器)

Elasticsearch 分析器&#xff08;内置分析器&#xff0c;自定义分析器&#xff0c;IK分析器&#xff09; 内置分析器使用分析器自定义分析器中文分析器&#xff08;IK分析器&#xff09;安装使用添加词典 内置分析器 官网&#xff1a;https://www.elastic.co/guide/en/elasti…

03_前端三大件CSS

文章目录 CSS用于页面元素美化1.CSS引入1.1style方式1.2写入head中&#xff0c;通过写style然后进行标签选择器加载样式1.3外部样式表 2.CSS样式选择器2.1 元素选择器2.2 id选择器2.3 class选择器 3.CSS布局相关3.1 CSS浮动背景&#xff1a;先设计一些盒子因此&#xff0c;引出…

【qt】QTreeWidget 树形组件

QTreeWidget 树形组件 一.什么是树形组件二.界面设计树形组件三.代码实现1.清空2.设置列数3.设置头标签4.添加根目录①QTreeWidgetitem②设置文本③设置图标④添加为顶层目录 5.添加子目录①初始化为父目录②子目录添加到父目录③获取到子目录 四.插入目录1.获取当前选中目录项…

python数据类型之元组、集合和字典

目录 0.三者主要作用 1.元组 元组特点 创建元组 元组解包 可变和不可变元素元组 2.集合 集合特点 创建集合 集合元素要求 集合方法 访问与修改 子集和超集 相等性判断 集合运算 不可变集合 3.字典 字典特点 字典创建和常见操作 字典内置方法 pprin模块 0.…

Vxe UI 表单设计器、零代码平台

vxe-pc-ui Vxe UI 表单设计器、零代码表单设计器 安装 Vxe UI PC端组件库 官方文档 查看 github、gitee // ...import VxeUI from vxe-pc-uiimport vxe-pc-ui/lib/style.css// ...// ...createApp(App).use(VxeUI).mount(#app)// ...使用 vxe-form-design 设计器组件 vxe-fo…

分享活动规划

前两天去参加菁英学院的一些辅导&#xff0c;是关于苏州久富农业机械的发展&#xff0c;看了他们企业的故事&#xff0c;我觉得我们农机很有前景和发展空间&#xff0c;我希望重新经过一次分享活动来分享我的感触&#xff0c;希望能够再次把我学到的内容传输到其他班的同学们 请…