编号 | 学号 | 姓名 | 操作 |
---|---|---|---|
{{ forloop.counter }} | {{ student.student_no }} | {{ student.student_name }} | 删除 修改 |
开发工具:Pycharm 2020.1.1
开发语言:Python 3.8.5
Web框架:Djanjo 3.0.3
前端框架:bootstrap 3.3.7
数据库:MySQL 8.0.21 + Navicat Premium 15.0.17
操作系统:macOS 10.14.6
技术要学会分享、交流,不建议闭门造车。 本文技术由粉丝群小伙伴分享汇总。源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、添加微信号:dkl88191,备注:来自CSDN +学管系统
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:学管系统
python manage.py startapp Web # Web名字可以任意取
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'eleven', 'USER': 'root', 'Pw': '123456', 'HOST': '127.0.0.1', 'PORT': 3306 } }
class Student(models.Model): student_no = models.CharField(max_length = 32, unique=True) student_name = models.CharField(max_length = 32)
执行如下命令,在数据库生成表结构
# 生成文件记录模型的变化 python manage.py makemigrations Web # 将模型变化同步至数据库,我们可以在数据库生成对应的表结构 python manage.py migrate Web
数据库中生成的表
在el_sms里面的urls.py里面添加Web的路由配置
from django.contrib import admin from django.urls import path from django.conf.urls import url, include # 请求路径url和处理方法的映射配置 urlpatterns = [ path('admin/', admin.site.urls), url(r'^Web/', include('Web.urls')) ]
然后在Web创建一个urls.py文件,添加路由配置如下:
# coding=utf-8 from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index), url(r'^add/$', views.add), url(r'^edit/$', views.edit), url(r'^delete/$', views.delete) ]
在应用Web的视图层文件views.py添加对学生信息增删改查的处理函数
import MySQLdb from django.shortcuts import render, redirect # Create your views here. # 连接MySQL数据库 conn = MySQLdb.connect(host="localhost", user="root", pw="123456", db="eleven", charset='utf8') # 学生信息列表处理函数 def index(request): with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute("SELECT id,student_no,student_name FROM Web_student") students = cursor.fetchall() return render(request, 'student/index.html', {'students': students}) # 学生信息新增处理函数 def add(request): if request.method == 'GET': return render(request, 'student/add.html') else: student_no = request.POST.get('student_no', '') student_name = request.POST.get('student_name', '') with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute("INSERT INTO Web_student (student_no,student_name) " "values (%s,%s)", [student_no, student_name]) conn.commit() return redirect('../') # 学生信息修改处理函数 def edit(request): if request.method == 'GET': id = request.GET.get("id") with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute("SELECT id,student_no,student_name FROM Web_student where id =%s", [id]) student = cursor.fetchone() return render(request, 'student/edit.html', {'student': student}) else: id = request.POST.get("id") student_no = request.POST.get('student_no', '') student_name = request.POST.get('student_name', '') with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute("UPDATE Web_student set student_no=%s,student_name=%s where id =%s", [student_no, student_name, id]) conn.commit() return redirect('../') # 学生信息删除处理函数 def delete(request): id = request.GET.get("id") with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute("DELETE FROM Web_student WHERE id =%s", [id]) conn.commit() return redirect('../')
学生信息列表页
学生列表
学生信息新增页
学生添加
学生信息编辑页
学生修改
Terminal终端输入以下命令启动web服务
python manage.py runserver
服务启动后,打开浏览器输入http://127.0.0.1:8000/Web即可进入学生信息管理列表页