django_ORM学生管理系统

一.新建django项目准备工作

CMD新建项目命令:django-admin startproject [项目名称]

pycharm的project目录里新建app命令:python manage.py startapp [app名称]

setting文件下新建app路径

INSTALLED_APPS = [
    ‘app01‘,]
 
注释掉csrf中间件
MIDDLEWARE = [
# ‘django.middleware.csrf.CsrfViewMiddleware‘,
]
 
模板文件部署
在newproject目录下新增文件夹templates
更改setting下template的dirs路径
TEMPLATES = [    {                ‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],
 
数据库部署
注释默认sqllte数据库,新增mysql数据库借口
DATABASES = {

‘default‘: {

‘ENGINE‘: ‘django.db.backends.mysql‘,

‘NAME‘: ‘new_project‘,    #你的数据库名称

‘USER‘: ‘root‘,   #你的数据库用户名

‘PASSWORD‘: ‘111111‘, #你的数据库密码

‘HOST‘: ‘‘, #你的数据库主机,留空默认为localhost

‘PORT‘: ‘3306‘, #你的数据库端口

}

}
 
静态文件部署
在newproject路径下新增static文件夹
在setting配置下新增STATICFILES_DIRS路径
STATICFILES_DIRS=(    os.path.join(BASE_DIR,‘app01‘,‘static‘),                  )
 
准备工作完成....
 
 

Django练习小项目:学员管理系统设计开发

项目需求:

1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6.每个学员的所有上课出勤情况\学习成绩都要保存7.学校可以有分校区,默认每个校区的员工只能查看和管理自己校区的学员8.客户咨询要区分来源
 
django步骤开始
在models文件下新建数据库
创建班级表,教师表,学生表三张表
班级表与教师表为多对多关系(建立多对多关系)
班级表与学生表为一对多关系(建立外键)
 
from django.db import models

# Create your models here.

class Classes(models.Model):

"""     新建班级表,例如男生表    """    title = models.CharField(max_length=32)新建title值    m=models.ManyToManyField("Teachers")班级表与教师表为多对多关系
 

class Teachers(models.Model):    """    新建老师表,女    """    name= models.CharField(max_length=32)
# 一种方式:自己创建第三张表,在数据库中自己插入值# class C2T(models.Model):#   cid=models.Foreignkey(Classes)#   tid=models.Foreignkey(Teachers)
 
 
django创建第三张表,捆绑students表与classes表

class Student(models.Model):    username=models.CharField(max_length=32)    age=models.IntegerField()    gender=models.BooleanField()还有nullBooleanField选项(可以为空的布尔值)    cs=models.ForeignKey(Classes,on_delete=True)学生表与班级表为一对多的关系,班级表为多的那个表
注意:django2.1需要加上on_delete选项,True默认
 
建完表之后,mysql新建数据库,create datebase [数据库名称]
 
在pychram下新建cmd命令
python manage.py makemigrations新建表结构,
再新建python manage.py migrate,django自动创建表与表关系
 
 
url文件下新建django url路由的路径
 
from django.contrib import adminfrom django.urls import path

from app01.views  import classes

urlpatterns = [    path(‘admin/‘, admin.site.urls),    path(‘get_classes/‘,classes.get_class), 班级名单与添加结果    path(‘add_classes/‘,classes.add_classes), 新建内容    path(‘change_classes/‘, classes.change_classes), 更改数据

]
为了避免views文件下函数太多,删除startproject的views 文件
新建views文件夹,在views文件下新建student,classes,teacher三个文件
 
 
 
 
 
 
 
classes文件下先写执行的函数
 
from django.shortcuts import render,redirectfrom app01 import models

def get_class(request):    cls_list=models.Classes.objects.all()得到classes表里面的所有内容

return render(request,‘get_classes.html‘,{‘cls_list‘:cls_list})返回get_classes.html页面

def add_classes(request):    if request.method == "GET":        return render(request,‘add_classes.html‘)

elif request.method == "POST":        title = request.POST.get(‘title‘)        models.Classes.objects.create(title=title)        return redirect("/get_classes/")

def change_classes(request):    return render(‘change_classes.html‘)
templates文件下新建html文件
get_classes.html
 
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>    *{    margin:0;    padding:0    }

</style>

</head><body>

<div>        <a href="/add_classes/">添加</a>    </div>        <div>            <table border="1">                <thead>                    <tr>                        <th>ID</th>                        <th>名称</th>                        <th>操作</th>                    </tr>                </thead>                <tbody>                    {% for row in cls_list %}                        <tr>                            <td>                                {{ row.id }}                            </td>

<td>                                {{ row.title }}                            </td>                            <td>                                <a href="/del_classes?nid={{ row.id }}">删除</a>                                |<a href="/change_classes?nid={{ row.id }}">修改</a>                            </td>

</tr>                    {% endfor %}                </tbody>            </table>        </div>

</body></html>
 
add_classes.html页面,用来新增数据的表
 
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>    *{    margin:0;    padding:0    }

</style>

</head><body>    <form action="/add_classes/" method="POST">        {%csrf_token%}添加中间件设置        <input type="text" name="title">        <input type="submit" value="提交">

</form>

</body></html>
 
 
 
 
 
 
 

原文地址:https://www.cnblogs.com/ago-0912/p/9956096.html

时间: 2024-08-05 12:37:34

django_ORM学生管理系统的相关文章

学生管理系统(jsp+mysql)

1.实验目的 通过使用 Java Web 技术设计一个简单的数据库管理系统,了解前台页面和后 台编辑页面的区别,掌握 Web 服务器与 MySQL 数据库的连接和数据库操作的方 法,掌握使用 JSP 编写后台代码的方法. 2.实验内容和要求 开发一个学生管理系统,完成学生信息的查看.增加.删除和修改等功能. 对于客户端增加和修改信息页面,要使用 javascript 进行必要的数据的非空验证. 自行添加一些 css,使得页面和字体更加美观. 3.实验步骤及实验结果 (1)打开 MySQL,新建一

用链表写的学生管理系统 成绩的录入与查询都已经是实现了

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct teacher { char name[32]; int math; int english; int data; struct Node *next; }SLIST; int Creat_SList(); int SList_Print(); int SLis

c语言学生管理系统链表(dev vs2012下可以运行)

struct student { char name[10]; char sex[5]; long int num;//学号 int xuhao; int age; float score[3]; float averange; char DJ;//存放等级哦 struct student *next; };//定义结构体变量保存 名字 性别 年龄 成绩] 结构体声明 int n;//存放学生人数 int man;//存放统计的男生数 float JY(float a)//校验成绩使范围0-10

Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立

学生管理系统 管理员注册/登录/注销 注册班级(班级详细信息) 注册学生信息 查看班级信息/查看老师资料 教师注册/注销  查看教师资料  查看学生资料  根据名称/班级/ 查看学生详细信息--支持模糊 注册科目 管理员(admini) ad_id(管理员id)     ad_number(管理员账号) ad_pass(管理员密码)    ad_yn(管理员是否禁用) create table admini( ad_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自

微信南通大学教务学生管理系统_用户体验

刚开始我还没关注南通大学教务学生管理系统的时候都是经常用电脑登陆然后上去查课表或者成绩什么的,但是用电脑也挺不方便的,因为每次都输用户名和密码,挺烦的.后来关注微信之后觉得还挺方便的,(图片是盗用同学的,因为我的手机屏幕没那么大,不能一下子把整张图一次性截下),但是我想说的他的缺点也就是它的一张图片实在太长了,让人看的眼花,一下子不能马上找到自己想查的是什么,而且我们要查的内容都是通过输入字母和数字组成的,如果一下子记不住字母和数字,还要往上翻页去看一眼什么字母或者数字,才能继续输入.(我不知道

精美学生管理系统

半个学期即将完美结束,精美的学生管理系统也终于亮相啦,哈哈! 话不多说,切入正题. 首先,要了解完成学生管理系统的步骤: 总共有几个模块,我就逐一讲解: 一:完成登录页面模块 判断“登录”是否成功的代码: 1 private void btnLogin_Click(object sender, EventArgs e) 2 { 3 string str = DBHelper.str; 4 SqlConnection con = new SqlConnection(str); 5 string s

【php】1、学生管理系统-欢迎界面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

简单的学生管理系统

简单的学生管理系统 一,主要功能: 1,添加学生信息: 2,添加的学生信息显示在线型布局中: 3,把学生信息保存在xml文件中: 4,把保存在mxl中的学生信息取出来解析显示在界面: 二,主要知识点: 1,layout_weight的使用: 2,pull解析xml文件,xml序列化: 3,保存数据到sd卡: 4,动态添加控件刷新界面: 三,界面原型如下图: 四,代码展示: 1,界面xml文件,activity_main.xml <LinearLayout xmlns:android="ht

Servlet实例开发---学生管理系统

Servlet总结 本程序采用Servlet开发技术,MVC分层,所有程序在设计时都要接口为操作的标准,主要逻辑操作只有增删改查. 具体实现操作请看源代码. 本程序采用的是MYSQL数据库,需加入相应的jar包 目录结构 首先贴上底层数据层: 连接数据库 package com.student.dbc ; import java.sql.* ; public class DatabaseConnection { private static final String DBDRIVER = "or