本文實例為大家分享了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()            
新聞熱點
疑難解答