django_ORM学生管理系统

Posted ago-0912

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 admin
from 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,redirect
from 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>
 
 
 
 
 
 
 







































































































































































以上是关于django_ORM学生管理系统的主要内容,如果未能解决你的问题,请参考以下文章

django_ORM

django_orm操作

Django_ORM操作

Django_orm脚本

django_orm 基本操作

Django_ORM数据表查询总结