圖書管理系統-單表的增刪改查
阿新 • • 發佈:2019-01-17
key button ref ati 用戶 oct 排序 ima orm
配置環境
settings.py文件
MIDDLEWARE = [ ‘django.middleware.security.SecurityMiddleware‘, ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.middleware.common.CommonMiddleware‘, # ‘django.middleware.csrf.CsrfViewMiddleware‘, #暫時不用,註釋掉 ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, ‘django.contrib.messages.middleware.MessageMiddleware‘, ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘, ]
配置數據庫
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, #使用mysql數據庫 ‘NAME‘: ‘bom‘, #庫名 ‘HOST‘: ‘127.0.0.1‘, #IP ‘PORT‘: 3306, #端口 ‘USER‘: ‘root‘, #用戶 ‘PASSWORD‘: ‘123456‘ #密碼 } }
配置靜態文件
STATIC_URL = ‘/static/‘ STATICFILES_DIRS = [ os.path.join(BASE_DIR, ‘static‘) ]
在settings.py同級文件中的__init__.py中指定django使用pymysql連接數據庫
import pymysql pymysql.install_as_MySQLdb()
在app01下的models.py下創建表
from django.db import models # Create your models here. class Bms(models.Model): pid = models.AutoField(primary_key=True)#更改默認id的名字 name = models.CharField(max_length=20,unique=True) #varcher(20)
在Termial中執行命名,遷移數據庫
python manage.py makemigrations
python manage.py migrate
點擊Pycharm 右側Datebase連接數據庫,並插入數據,別忘了提交
創建static文件,並將bootstarap放到plugins文件夾下
在templates下創建index.html文件
index.html文件代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>出版社</title> <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7/css/bootstrap.css"> </head> <style> .col-center-block { float: none; display: block; margin-left: auto; margin-right: auto; padding-top: 100px; } </style> <body> <div class="container"> <div class="row"> <div class="col-md-6 col-center-block"> <div class="panel panel-info"> <div class="panel-heading"> <h3 class="panel-title text-center">出版社</h3> </div> <div class="panel-body"> <table class="table table-bordered table-striped table-hover"> <thead> <tr> <td>序號</td> <td>名稱</td> <td>操作</td> </tr> </thead> <tbody> {% for i in all_data %} {# 循環從all_data:對象列表 中取得數據 i 為對象#} <tr> <td>{{ i.pk }}</td> {# pk 表示主鍵 和pid一樣#} <td>{{ i.name }}</td> <td> <a href="/add_cbs/">添加</a> <a href="/edit_cbs/?pk={{ i.pk }}">修改</a> <a href="/delete_cbs/?pk={{ i.pk }}">刪除</a> </td> </tr> {% endfor %} </tbody> </table> </div> </div> </div> </div> </div> </body> </html>View Code
頁面效果
views.py文件
from django.shortcuts import render, redirect from app01 import models # 展示出版社列表 def index(repuest): # 從數據庫中取到數據,通過pid進行排序,默認升序 all_data = models.Bms.objects.all().order_by(‘pid‘) # 返回一個包含數據的頁面 return render(repuest, ‘index.html‘, {‘all_data‘: all_data}) # 添加出版社 def add_bms(request): # 區分請求方式 if request.method == ‘POST‘: # 獲取到提交的數據,form 中 name中的值 new_name = request.POST.get(‘new_name‘,‘‘).strip() if not new_name: #提交的是空的字符串 new_name為空時,not new_name 會執行 return render(request,‘add_bms.html‘,{‘err_msg‘:‘不能為空‘,‘new_name‘:new_name}) # 判斷新的名字在數據庫中是否存在,獲取的是對象列表 obj_list = models.Bms.objects.filter(name=new_name) # 如果數據存在,返回錯誤提示 if obj_list: return render(request, ‘add_bms.html‘, {‘err_msg‘: ‘數據以存在‘,‘new_name‘:new_name}) # 將數據插入到數據庫中 ,如果插入多個值,逗號分隔,ret為對象 ret = models.Bms.objects.create(name=new_name) # 跳轉到顯示頁面 return redirect(‘/index/‘) # 返回一個包含form表單的頁面 return render(request, ‘add_bms.html‘)View Code
增
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加出版社</title> </head> <body> <form action="" method="post" > <p> 名稱:<input type="text" name="new_name"><span>{{ err_msg }}</span> </p> <button>提交</button> </form> </body> </html>View Code
urls.py文件
""" from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^index/‘, views.index), url(r‘^add_bms/‘, views.add_bms), ]View Code
改
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>編輯出版社</title> </head> <body> <form action="" method="post"> <p> 名稱:<input type="text" name="new_name" value="{{ obj.name }}"><span>{{ err_msg }}</span> </p> <button>提交</button> </form> </body> </html>View Code
圖書管理系統-單表的增刪改查