用python 开发合同管理系统_python3.6+django2.0 一小时学会开发一套学员管理系统demo...

1.在pycharm中新建project demo1 添加app01 点击create按钮完成新建

2.在demo项目目录下新建目录static,并在settings.py中追加代码:

STATICFILES_DIRS=(os.path.join(BASE_DIR, 'static'),)

3.在setting.py中添加模板路径:

TEMPLATES = [

{

'BACKEND': '...',

'DIRS': [os.path.join(BASE_DIR, 'templates'),],

'APP_DIRS': ...,

'OPTIONS': {

'context_processors': [

...

],

},

},

]

4.学员管理系统数据库设计:

在app01/model.py目录下建立 班级、老师、学生 、老师与班级关联表  四张表:

from django.db import models

# Create your models here.

class Classes(models.Model):

'''

班级表

'''

title=models.CharField(max_length=32)

a=models.ManyToManyField('Teachers')

class Teachers(models.Model):

'''

老师表

'''

name=models.CharField(max_length=32)

class Students(models.Model):

username=models.CharField(max_length=32)

age=models.IntegerField()

gender=models.BooleanField()

cs=models.ForeignKey(Classes,on_delete=models.CASCADE)

在终端Terminal 项目目录下执行数据表更新命令:

python manage.py makemigrations

python manage.py migrate

至此生成了四张数据表,可以在pycharm中,点开右上角的Database面板,然后将项目中templates目录下边的db.sqlite3鼠标拖拽到Database面板下,对新创建的数据表进行查看。

5.学员管理系统之班级管理:

为了方便分别操作班级、老师、学生相关的业务,将app01目录下的views.py 删掉,在app01目录下新建目录views,并在views目录下 新建classes.py teachers.py students.py。

1.在classes.py 中写 get_classes add_classes del_classes edit_classes四个函数,完成对 班级数据 的增删改查:

from django.shortcuts import render,redirect

from app01 import models

def get_classes(request):

cls_list = models.Classes.objects.all()

return render(request,'get_classes.html',{'cls_list':cls_list})

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('/classes.html')

def del_classes(request):

nid=request.GET.get('nid','')

models.Classes.objects.filter(id=nid).delete()

return redirect('/classes.html')

def edit_classes(request):

if request.method=="GET":

nid = request.GET.get('nid', '')

obj=models.Classes.objects.get(id=nid)

return render(request,'edit_classes.html',{'obj':obj})

elif request.method=="POST":

nid=request.POST.get('nid','')

title=request.POST.get('xxoo','')

models.Classes.objects.filter(id=nid).update(title=title)

return redirect('/classes.html')

2.在urls.py 中配置url路由:

from django.contrib import admin

from django.urls import path

from app01.views import classes,students,teachers

urlpatterns = [

path('admin/', admin.site.urls),

path('classes.html', classes.get_classes),

path('add_classes.html', classes.add_classes),

path('del_classes.html', classes.del_classes),

path('edit_classes.html', classes.edit_classes),

# path('teachers.html', teachers.get_teachers),

# path('students.html', students.get_studernts),

]

3.在template目录下建立所需的html页面文件:

get_classes.html

DOCTYPE html>

tr td{ border:1px solid #000;text-align:center;}

Title

ID 名称 操作

{% for row in cls_list %}

{{ row.id }}{{ row.title }} 删除

|编辑

{% endfor %}

add_classes.html

Title

{% csrf_token %}

edit_classes.html

Title

{% csrf_token %}

6.学员管理系统之学员管理:

1.在students.py 中写 get_students add_students del_students edit_students 四个函数,完成对 学生数据 的增删改查:

from django.shortcuts import render,redirect

from app01 import models

def get_students(request):

stu_list=models.Students.objects.all()

return render(request,'get_students.html',{'stu_list':stu_list})

def add_students(request):

if request.method=='GET':

cs_list=models.Classes.objects.all()

return render(request,'add_students.html',{'cs_list':cs_list})

elif request.method=='POST':

u=request.POST.get('username','')

a=request.POST.get('age','')

g=request.POST.get('gender','')

c=request.POST.get('cs','')

models.Students.objects.create(

username=u,

age=a,

gender=g,

cs_id=c

)

return redirect('/students.html')

def del_students(request):

nid = request.GET.get('nid', '')

models.Students.objects.filter(id=nid).delete()

return redirect('/students.html')

def edit_students(request):

if request.method=="GET":

nid = request.GET.get('nid', '')

obj=models.Students.objects.get(id=nid)

cs_list = models.Classes.objects.all()

return render(request,'edit_students.html',{'obj':obj,'cs_list':cs_list})

elif request.method=="POST":

nid=request.POST.get('nid','')

u = request.POST.get('username', '')

a = request.POST.get('age', '')

g = request.POST.get('gender', '')

c = request.POST.get('cs', '')

models.Students.objects.filter(id=nid).update(

username=u,

age=a,

gender=g,

cs_id=c)

return redirect('/students.html')

2.在urls.py 中配置url路由:

from django.contrib import admin

from django.urls import path

from app01.views import classes,students,teachers

urlpatterns = [

path('admin/', admin.site.urls),

path('classes.html', classes.get_classes),

path('add_classes.html', classes.add_classes),

path('del_classes.html', classes.del_classes),

path('edit_classes.html', classes.edit_classes),

path('students.html', students.get_students),

path('add_students.html', students.add_students),

path('del_students.html', students.del_students),

path('edit_students.html', students.edit_students),

# path('teachers.html', teachers.get_teachers),

]

3.在template目录下建立所需的html页面文件:

get_students.html

tr td{ border:1px solid #000;text-align:center;}

Title

ID姓名年龄性别班级操作

{% for row in stu_list %}

{{ row.id }}{{ row.username }}{{ row.age }}{{ row.gender }}{{ row.cs.title }} 删除

|编辑

{% endfor %}

add_students

Title

添加用户

{% csrf_token %}

{% for row in cs_list %}

{{ row.title }}

{% endfor %}

edit_students.html

Title

编辑用户

{% csrf_token %}

{% for row in cs_list %}

{{ row.title }}

{% endfor %}

7.学员管理系统之给班级分配老师:

在teachers数据表中增加一些老师信息:

在pycharm右上角的Database打开面板,然后将template目录下边的db.splte3鼠标拖入到Database面板中,打开db==》app01_teachers表

点击“+”,然后填入老师信息,然后点击有“DB”标志的向上箭头,进行数据保存。

1.在classes.py中增加set_teachers函数

def set_teachers(request):

if request.method=='GET':

nid=request.GET.get('nid','')

cls_obj=models.Classes.objects.get(id=nid)

cls_teacher_list=cls_obj.a.all()

all_teacher_list=models.Teachers.objects.all()

return render(request,'set_teachers.html',{

'cls_teacher_list':cls_teacher_list,

'all_teacher_list':all_teacher_list,

'nid':nid,

})

elif request.method=='POST':

nid = request.POST.get('nid', '')

ids_str=request.POST.getlist('teacher_id','')

ids_int=[]

for i in ids_str:

i=int(i)

ids_int.append(i)

obj=models.Classes.objects.get(id=nid)

obj.a.set(ids_int)

return redirect('/classes.html')

2.在urls.py 中配置url路由:

from django.contrib import admin

from django.urls import path

from app01.views import classes,students,teachers

urlpatterns = [

path('admin/', admin.site.urls),

path('classes.html', classes.get_classes),

path('add_classes.html', classes.add_classes),

path('del_classes.html', classes.del_classes),

path('edit_classes.html', classes.edit_classes),

path('students.html', students.get_students),

path('add_students.html', students.add_students),

path('del_students.html', students.del_students),

path('edit_students.html', students.edit_students),

path('set_teachers.html', classes.set_teachers),

]

3.在template目录下建立所需的html页面文件:

set_teachers.html

Title

{% csrf_token %}

{% for item in all_teacher_list %}

{% if item in cls_teacher_list %}

{{ item.name }}

{% else %}

{{ item.name }}

{% endif %}

{% endfor %}

对get_classes.html进行增添修改为:

Title

ID 名称 任课老师 操作

{% for row in cls_list %}{{ row.id }}{{ row.title }}{% for item in row.a.all %} {{ item.name }}{% endfor %}删除|编辑|分配老师{% endfor %}
添加
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值