赞
踩
目录
目录
首先要先启动mysql
创建一个新的文件夹用来存放其中内容
鼠标右击打开终端
在终端中输入
django-admin startproject aaa
创建一个名为aaa的项目文件
打开pycharm进行调试
打开pycharm,打开学生管理系统文件
从左上角打开,然后进行编辑配置
添加新的运行配置,选择python
输入runsever,点击确定
在项目aaa中进入终端,输入
python manage.py startapp app
以表名创建一个类,类名遵循大驼峰命名法;实例方法表示表中的字段名;
max_length指定最大长度
Student是学生系统表
User是后面登录用的表,用来储存用户和密码
导入os模板
找到 INSTALLED_APPS(在34行左右) 添加app应用
在 TEMPLATES中的DIRS中添加
os.path.join(BASE_DIR,'templates')
配置DATABASES 连接数据库:
参数说明:
由于这次并没有使用静态所以就没有配置静态资源
首先在app中创建一个url路由文件
路由转发
分配url
python manage.py makemigrations
python manage.py migrate
使用这两条命令进行数据迁移,迁移完成后会出现一个migrations中会出现一个新文件可以在文件夹中查看数据是否迁移成功
创建login.html登录页面(如果页面运行的时候出现重定向次数过多要在第二个app/login后加/)
写完中间件后要在setting中进行配置,将下面的代码添加到MIDDLEWARE中
'middleware.auth.AuthMiddleware'
在user表中设置用户名和密码
点右下角对勾保存;
- 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')
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- </head>
- <body>
- <form action="" method="post">
- {% csrf_token %}
- <div class="item">
- <label for="">用户名:</label>
- <input type="text" name="username">
- </div>
- <div class="item">
- <label for="">密码:</label>
- <input type="password" name="password">
- </div>
- <div class="item">
- <input type="submit" value="登录">
- </div>
- </form>
- </body>
- </html>
在终端中运行manage文件
在浏览器中输入ip和端口号和路由进入登录页面
首先创建一个通用模板
继承layout.html内容(这里只是为大家简单展示一下继承的用法)
- {% extends 'layout.html' %}
- {% block main %}
- <a href="/app/book_add">增加学生</a>
- <table>
- <thead>
- <tr>
- <th>姓名</th>
- <th>年龄</th>
- <th>性别</th>
- </tr>
- </thead>
- <tbody>
- {% for item in ls %}
- <tr>
- <td>{{ item.name }}</td>
- <td>{{ item.age }}</td>
- <td>{{ item.sex }}</td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- {% endblock %}
12.2 创建views中student函数
- def student(request):
- ls = Student.objects.all()
- return render(request,'student.html',{'ls':ls})
12.3 添加路由
登录完成后就会跳转到student页面
- {% extends 'layout.html' %}
- {% block main %}
- <form method="POST">
- {% csrf_token %}
- <p>学生姓名<input type="text" name="name"></p>
- <p>学生性别
- <input type="radio" name="sex" value="0">男
- <input type="radio" name="sex" value="1">女
- </p>
- <p>学生年龄<input type="text" name="age"></p>
- <p><button>添加</button></p>
- </form>
- {% endblock %}
- 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')
- {% extends 'layout.html' %}
- {% block main %}
- <form method="POST">
- {% csrf_token %}
- <p>学生姓名<input type="text" name="name"></p>
- <p>学生性别
- <input type="radio" name="sex" value="0">男
- <input type="radio" name="sex" value="1">女
- </p>
- <p>学生年龄<input type="text" name="age"></p>
- <p><button>修改</button></p>
- </form>
- {% endblock %}
- 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 delete(request):
- id = request.GET.get('id')
- Student.objects.filter(id=id).delete()
- return redirect('/app/student')
下面是views.py中的所有代码
- from django.http import HttpResponse
- from django.shortcuts import render, redirect
-
- # Create your views here.
- from app.models import Student, User
- def 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')
下面是student.html中的代码
- {% extends 'layout.html' %}
- {% block main %}
- <a href="/app/add">增加学生</a>
- <table>
- <thead>
- <tr>
- <th>姓名</th>
- <th>年龄</th>
- <th>性别</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody>
- {% for item in ls %}
- <tr>
- <td>{{ item.name }}</td>
- <td>{{ item.age }}</td>
- <td>
- {% if item.sex == '1' %}
- 女
- {% else %}
- 男
- {% endif %}
- </td>
- <td><a href="/app/delete?id={{item.id}}">删除</a></td>
- <td><a href="/app/update?id={{item.id}}">修改</a></td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- {% endblock %}
提示:以上就是本文是全部内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。