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学生管理系统的主要内容,如果未能解决你的问题,请参考以下文章