首页 > 编程 > Python > 正文

Django实现学员管理系统

2020-02-16 01:22:04
字体:
来源:转载
供稿:网友

本文实例为大家分享了Django实现学员管理系统的具体代码,供大家参考,具体内容如下

要求:实现数据的增删改查功能,并同步至数据库中。此项目实现了前端以及后端的结合。

(1) 先在settings里配置static(存放的是css样式、js代码、以及imgs),可以加在文件末尾

STATIC_URL = '/static/'STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static')]

(2) 首先,新建一个django项目,在项目下的urls.py文件里,配置跳转路由,跳转到首页

urls.py

from django.conf.urls import url, includefrom django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^student/', include('student.urls'))]

(3) 通过python manage.py startapp student命令创建一个student的app(不要忘记在settings中配置一下),并在models.py下执行mysql操作,在这里我们就直接在数据库里手动创建表,不再使用sql语句创建表了

models.py

import pymysql# Create your models here. # 管理数据库class DBManager(object):  @classmethod def open_sql(cls):  conn = pymysql.connect(   host='127.0.0.1',   port=3306,   db='students',   user='root',   password='123456',   use_unicode=True,   charset='utf8'  )  DBManager.conn = conn  DBManager.cursor = conn.cursor()  @classmethod def close_sql(cls):  DBManager.conn.commit()  DBManager.cursor.close()  DBManager.conn.close() # 数据模型类class StudnetModel(object):  def __init__(self, s_id, s_name, s_phone):  self.s_id = s_id  self.s_name = s_name  self.s_phone = s_phone  self.table = 'students'  def save(self):  """  保存数据模型到数据库  :return: False 表示数据已存在 True表示保存数据成功  """  DBManager.open_sql()  # 如果s_id已存在,说明学号已存在  sql = f'SELECT * FROM students WHERE s_id={self.s_id}'  if DBManager.cursor.execute(sql) > 0:   # 数据已存在,插入失败   return False  else:   # 插入数据   sql = 'INSERT INTO students(s_id,s_name,s_phone)VALUES(%s,%s,%s)'   DBManager.cursor.execute(sql,(self.s_id, self.s_name, self.s_phone))   DBManager.close_sql()   return True  @classmethod def delete(cls, s_id):  """  根据s_id删除数据  :param s_id: 要删除数据的id  :return: False表示该数据不存在 True删除成功  """  DBManager.open_sql()   # 删除的sql语句  sql = f'DELETE FROM students WHERE s_id={s_id}'  DBManager.cursor.execute(sql)   # rowcount 执行sql语句 影响的数据条数  if DBManager.cursor.rowcount > 0:   DBManager.close_sql()    return True  else:   return False  @classmethod def object_with_id(cls, s_id):   DBManager.open_sql()  sql = f'SELECT * FROM students WHERE s_id={s_id}'  DBManager.cursor.execute(sql)  # 取出拿到的数据  result = DBManager.cursor.fetchone()  DBManager.close_sql()  if result:   # 返回StudentModel对象   return cls(result[0], result[1], result[2], )  def modify(self):   DBManager.open_sql()   sql = f"UPDATE students SET s_name='{self.s_name}' , s_phone='{self.s_phone}' WHERE s_id={self.s_id}"   DBManager.cursor.execute(sql)  if DBManager.cursor.rowcount > 0:   DBManager.close_sql()   return True  else:   return False  @classmethod def objects(cls):  # 只要调用该函数,返回数据库中所有的数据  DBManager.open_sql()  sql = 'SELECT * FROM students'  DBManager.cursor.execute(sql)  # 取出查询的所有数据,results是一个大元组  results = DBManager.cursor.fetchall()  # 将results中每一个小元组转换为StudentModel对象  students = map(lambda t:cls(t[0], t[1], t[2]), results)  # 关闭数据库  DBManager.close_sql()   return students if __name__ == '__main__':  StudnetModel.objects()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表