网站首页 > 后端 > 正文

开发语言 基于Python + Django 开发一款学生管理系统(附源码)

文章目录

1.开发环境源码分享&技术交流2.项目实战1)创建`Django`项目2)创建应用3)配置MySQL4)数据模型层创建5)路由配置6)增删改查视图函数7)模板页面创建8)启动web服务

1.开发环境

开发工具: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学习与数据挖掘,后台回复:学管系统

2.项目实战

1)创建Django项目

Pycharm创建Django

目录结构如下

2)创建应用

打开Pycharm的终端,输入如下命令,创建Web应用

python manage.py startapp Web # Web名字可以任意取

在settings.py文件里INSTALLED_APPS下面添加Web完成应用注册

3)配置MySQL

修改settings.py文件中的sqlite3为MySQL

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'eleven',

'USER': 'root',

'Pw': '123456',

'HOST': '127.0.0.1',

'PORT': 3306

}

}

4)数据模型层创建

在应用Web下的models.py添加Student模型

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

数据库中生成的表

5)路由配置

在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)

]

6)增删改查视图函数

在应用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('../')

7)模板页面创建

学生信息列表页

学生列表

integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

学生信息新增页

学生添加

integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

学生信息编辑页

学生修改

integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

8)启动web服务

Terminal终端输入以下命令启动web服务

python manage.py runserver

服务启动后,打开浏览器输入http://127.0.0.1:8000/Web即可进入学生信息管理列表页

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: 

发表评论

返回顶部暗黑模式