Django学生管理系统(增删改查)
Django制作一个简单的增删改查
创建项目Students
- 点击Pycharm ———> file ——> New Probject ———>Django
一.资源准备
1. 数据库配置:
-
setting文件中找到DATABAES进行修改
-
主应用init文件下导入数据库模块
import pymysql
pymysql.install_as_MySQLdb()
- 媒体资源static配置,在setting下面STATIC_URL 下面进行如图配置
2. 模板创建(html文件)
登陆页面模板 login
主页面显示模板 showStudent
增加模板 addStudent
删除模板 delete
查询模板show2
修改模板show3
如下图
二.创建应用
- 创建一个名为index的应用
python manage.py startapp index
- 在Setting文件中的INSTALLED_APPS 里面把 index添加进去
2.为index应用定义模型
from django.db import models
# Create your models here.
class Stdent(models.Model):
id=models.CharField('学号',primary_key=True ,max_length=8)
name=models.CharField('姓名',max_length=10)
grade=models.CharField('班级',max_length=10)
sex=models.CharField('性别',max_length=2)
def __str__(self):
return str(self.name)
1.进行生成文件并迁移生成迁移文件: python manage.py makemigrations 迁移文件: python manage.py migrate
先生成迁移,再进行迁移
2.迁移后,数据库会生成以下表
三.编写项目
1. 创建一个用户
1 python manage.py createsuperuser
2. 主页面显示
- 编写主页面的views
#显示页面
def show(request):
student=Stdent.objects.all()
print(type(student),student)
return render(request,'showStudent.html',locals())
2.编写show的url
#显示页面
re_path('show/', views.show,name='show'),
3.编写showd的显示页面showStudent.html
<h1>学生管理系统</h1>
<table>
<tr>
<th>姓名</th>
<th>学号</th>
<th>班级</th>
<th>性别</th>
</tr>
{
% for stu in student %}{
#通过定义变量去循环里面的对象#}
<tr>
<td>{
{
stu.name }}</td>
<td>{
{
stu.id }}</td> <td>{
{
stu.grade }}</td>
<td>{
{
stu.sex }}</td>
</tr>
{
% endfor %}
</table>
3. 登陆页面编写
1.编写一个跳转到登录的页面
#登录页面
def login(request):
#跳转到html页面去输入数据
return render(request,'login.html',locals())
在先前创好的login.html进行页面编写,这个里面的{% url ‘do_login’%}是直接引用的的主应用下的URL(do_login)的路径
<body>
<h3 style="text-align: center">用户登录</h3>
<form action="{% url 'do_login' %}" method="post">
{
% csrf_token %}{
# 令牌,没有则会报403错误 #}
<table class="tb" border="1" cellpadding="10" style="margin: 0px auto">
<tr>
<td align="center">姓名</td>
<td><input id="name" type="text" name="name"/></td>
</tr>
<tr>
<td align="center">学号</td>
<td><input id="id" type="password" name="id"/></td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="登录"/>
</td>
</tr>
</table>
<script language="JavaScript">
login_msg={
{
data|safe }};
if(login_msg !=null){
alert(login_msg);
}
</script>
</form>
</body>
配置这个跳转视图的路径
#登录跳转
path('login/',views.login,name='login'),
2.编写登陆的判断
#登陆判断
def do_login(request):
#判断请求方式
if request.method=='POST':
#获取登录表单提交的数据,name为名字,id为密码,name和id均为数据库的名字和学号
name=request.POST.get('name')
id=request.POST.get('id')
#利用用户模型查询
users=Stdent.objects.raw('select * from index_stdent where name =%s and id = %s',params=[name,id])
#判断用户是否登录成功
if len(users) > 0:
return redirect('../show')
else:
login_msg=['用户名或密码错误']
return render(request,'login.html', {
'data':json.dumps(login_msg)})
编写路径
#登录页面
path('do_login/', views.do_login, name='do_login'),
4. 运行项目
- 运行项目,首先需要在数据库里面去添加一条信息。根据(信息里的name和id进行登陆),
2.
3.项目如图
输入对应的账号提交就会进入下一个页面(成功后的跳转),因为我这里写了css所以会不同,但是显示的数据会有。css后面会共享出来
增加数据
1.首先定义一个跳转views视图skip
- 定义跳转到添加数据页面的View视图skip
#跳转页面
def skip(request):
student = Stdent.objects.all()
print(type(student), student)
return render(request,'addStudent.html',locals())
2.定义跳转视图skip的路径