行业知识
python+Django学生管理系统
目录
目录
1.创建文件夹
2.创建项目
3.进行调试
4.创建应用app
5.创建一个新的数据库 student
6.创建templates文件夹存放html文件
7.在app中的models文件中添加表
7.1 orm字段类型
8.配置setting文件
编辑
9. 将模板储存在app中
编辑
10.数据迁移
11.实现登录
11.0 创建中间件middieware
11.1 配置setting
11.2设置用户名和密码
11.3在views中设置登录视图
11.4 添加登录路由
11.5 创建登录页面html
12 创建学生管理主页面
12.1 创建student页面
13 添加增加学生功能
13.1 创建添加学生页面
13.2 在view中创建添加函数
13.3添加路由
13.4在student.html中创建添加学生链接
编辑
14. 修改功能
14.1创建修改学生页面
14.2 在view中创建添加函数
14.3添加路由
14.4在student.html中创建修改链接
编辑
15. 删除功能
15.1 在view中创建删除函数
15.2 添加路由
15.3 在student.html中创建删除链接
编辑
16. views.py中的代码
17. student.html中的代码
总结
1.创建文件夹
首先要先启动mysql
创建一个新的文件夹用来存放其中内容
2.创建项目
鼠标右击打开终端
在终端中输入
django-admin startproject aaa
创建一个名为aaa的项目文件
3.进行调试
打开pycharm进行调试
打开pycharm,打开学生管理系统文件
从左上角打开,然后进行编辑配置
添加新的运行配置,选择python
输入runsever,点击确定
4.创建应用app
在项目aaa中进入终端,输入
python manage.py startapp app
5.创建一个新的数据库 student
6.创建templates文件夹存放html文件
7.在app中的models文件中添加表
以表名创建一个类,类名遵循大驼峰命名法;实例方法表示表中的字段名;
7.1 orm字段类型
- 表示文本的字段类型
- CharField、TextField——字符串、文本
- 数字(整数)
- IntegerField——整数
- SmallIntegerField——整数
- BigIntegerField——整数
- 数字(小数)
- FloatField、DecimalField——小数
- 日期与时间
- DateField——日期
- TimeField——时间
- DateTimeField——日期时间
- 特殊类型
- OneToOneField——一对一关联
- ForeignKey——外键关联
- ManyToManyField——多对多关联
max_length指定最大长度
Student是学生系统表
User是后面登录用的表,用来储存用户和密码
8.配置setting文件
导入os模板
找到 INSTALLED_APPS(在34行左右) 添加app应用
在 TEMPLATES中的DIRS中添加
os.path.join(BASE_DIR,'templates')
配置DATABASES 连接数据库:
参数说明:
- default——默认的数据库,可配置多个数据,使用名称来区分,也就是说,可以配置多个数据库连接信息的
- ENGINE——数据库引擎
- NAME——数据库名称
- USER——数据库登录用户名
- PASSWORD——数据库登录密码
- HOST——数据库访问地址
- PORT——数据库访问端口
由于这次并没有使用静态所以就没有配置静态资源
9. 将模板储存在app中
首先在app中创建一个url路由文件
路由转发
分配url
10.数据迁移
python manage.py makemigrations
python manage.py migrate
使用这两条命令进行数据迁移,迁移完成后会出现一个migrations中会出现一个新文件可以在文件夹中查看数据是否迁移成功
11.实现登录
11.0 创建中间件middieware
创建login.html登录页面(如果页面运行的时候出现重定向次数过多要在第二个app/login后加/)
11.1 配置setting
写完中间件后要在setting中进行配置,将下面的代码添加到MIDDLEWARE中
'middleware.auth.AuthMiddleware'
11.2设置用户名和密码
在user表中设置用户名和密码
点右下角对勾保存;
11.3在views中设置登录视图
def login(request): if request.method == 'GET': return render(request, 'login.html') else: # 获取用户名和密码 post_username = request.POST.get('username') post_password = request.POST.get('password') try: # 验证用户是否登录成功 user_model = User.objects.get(username=post_username, password=post_password) # 将用户信息存在 session中 request.session['user'] = post_username # {} print(user_model.username, user_model.password) return redirect('/app/student') except: return HttpResponse('用户名或密码错误')def logout(request): request.session.flush() # 清除当前登录用户的session数据 return redirect('/app/login') 11.4 添加登录路由
11.5 创建登录页面html
Title {% csrf_token %} 用户名: 密码: 在终端中运行manage文件
在浏览器中输入ip和端口号和路由进入登录页面
12 创建学生管理主页面
首先创建一个通用模板
12.1 创建student页面
继承layout.html内容(这里只是为大家简单展示一下继承的用法)
{% extends 'layout.html' %}{% block main %}增加学生| 姓名 | 年龄 | 性别 |
|---|---|---|
| {{ item.name }} | {{ item.age }} | {{ item.sex }} |
12.2 创建views中student函数
def student(request): ls = Student.objects.all() return render(request,'student.html',{'ls':ls}) 12.3 添加路由
登录完成后就会跳转到student页面
13 添加增加学生功能
13.1 创建添加学生页面
{% extends 'layout.html' %}{% block main %} {% csrf_token %}学生姓名
学生性别 男 女
学生年龄
添加
{% endblock %} 13.2 在view中创建添加函数
def add(request): if request.method == 'GET': return render(request,'add.html') else: name = request.POST.get('name') sex = request.POST.get('sex') age = request.POST.get('age') Student.objects.create(name = name,sex=sex,age=age) return redirect('/app/student') 13.3添加路由
13.4在student.html中创建添加学生链接
14. 修改功能
14.1创建修改学生页面
{% extends 'layout.html' %}{% block main %} {% csrf_token %}学生姓名
学生性别 男 女
学生年龄
修改
{% endblock %} 14.2 在view中创建添加函数
def update(request): id = request.GET.get('id') if request.method == 'GET': ls = Student.objects.get(id = id) return render(request,'update.html',{ 'ls':ls }) else: name = request.POST.get('name') age = request.POST.get('age') sex = request.POST.get('sex') Student.objects.filter(id=id).update( name = name, age = age, sex = sex ) return redirect('/app/student') 14.3添加路由
14.4在student.html中创建修改链接
15. 删除功能
15.1 在view中创建删除函数
def delete(request): id = request.GET.get('id') Student.objects.filter(id=id).delete() return redirect('/app/student') 15.2 添加路由
15.3 在student.html中创建删除链接
16. views.py中的代码
下面是views.py中的所有代码
from django.http import HttpResponsefrom django.shortcuts import render, redirect# Create your views here.from app.models import Student, Userdef student(request): ls = Student.objects.all() return render(request,'student.html',{'ls':ls})def add(request): if request.method == 'GET': return render(request,'add.html') else: name = request.POST.get('name') sex = request.POST.get('sex') age = request.POST.get('age') Student.objects.create(name = name,sex=sex,age=age) return redirect('/app/student')def delete(request): id = request.GET.get('id') Student.objects.filter(id=id).delete() return redirect('/app/student')def update(request): id = request.GET.get('id') if request.method == 'GET': ls = Student.objects.get(id = id) return render(request,'update.html',{ 'ls':ls }) else: name = request.POST.get('name') age = request.POST.get('age') sex = request.POST.get('sex') Student.objects.filter(id=id).update( name = name, age = age, sex = sex ) return redirect('/app/student')def login(request): if request.method == 'GET': return render(request, 'login.html') else: # 获取用户名和密码 post_username = request.POST.get('username') post_password = request.POST.get('password') try: # 验证用户是否登录成功 user_model = User.objects.get(username=post_username, password=post_password) # 将用户信息存在 session中 request.session['user'] = post_username # {} print(user_model.username, user_model.password) return redirect('/app/student') except: return HttpResponse('用户名或密码错误')def logout(request): request.session.flush() # 清除当前登录用户的session数据 return redirect('/app/login') 17. student.html中的代码
下面是student.html中的代码
{% extends 'layout.html' %}{% block main %}增加学生| 姓名 | 年龄 | 性别 | 操作 | |
|---|---|---|---|---|
| {{ item.name }} | {{ item.age }} | {% if item.sex == '1' %} 女 {% else %} 男 {% endif %} | {item.id}}">删除 | {item.id}}">修改 |
总结
提示:以上就是本文是全部内容
上一篇:怎么看服务器尺寸多大?