一个简单的图书管理系统
#连接mysql数据库: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'homework',# 要连接的数据库,连接前需要创建好 'USER':'root',# 连接数据库的用户名 'PASSWORD':'123', # 连接数据库的密码 'HOST':'127.0.0.1', # 连接主机,默认本级 'PORT':3306, # 端口 默认3306 'OPTIONS':{ 'init_command':'set sql_mode="STRICT_TRANS_TABLES"' #配置严格模式 } } } #静态文件 STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR,'statics') ]
from django.conf.urls import url from django.contrib import admin from zuoye02 import views urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^show_books',views.show_books,name='show_books'), url(r'^add_books',views.add_books,name='add_books'), url(r'^del_books/(\d+)',views.del_books,name='del_books'), url(r'^edit_books/(\d+)',views.edit_books,name='edit_books'), ]
from django.shortcuts import render,HttpResponse,redirect from zuoye02 import models #引入数据库数据 标准库的放上面,第三方库的放下面,引入自己项目系统中的文件放最下面 from django.urls import reverse # Create your views here. # 1、反向解析 # 2、for循环 # 3、静态文件 # 4、urls 问什么加name = show_books / add_books 避免路径写死 # 5、过滤器 # 6、{% csrf_token %} 用法 # 7、from Django.urls import reverse # 8、提交数据 用from表单 action 指定路径 def show_books(request): if request.method == 'GET': #在前端显示内容 all_books_objs = models.Book.objects.all() #all_books_objs 所有的model对象 return render(request,'show_books.html',{'all_books_objs':all_books_objs}) #render 字符串替换,展示所有 def add_books(request): if request.method == 'GET': return render(request,'add_books.html') else: # name = request.POST.get('name') # price = request.POST.get('price') # date = request.POST.get('date') # publisher = request.POST.get('publisher') # 向后端传入保存数据,是一种方法,还有另一种,关键字传参可以打散 # models.Book.objects.create( # name=name, # price=price, # date=date, # publisher=publisher # ) #打散传数据 book_info_dict = request.POST.dict() # print(book_info_dict) del book_info_dict['csrfmiddlewaretoken'] models.Book.objects.create(**book_info_dict) #创建完数据返回show_books return redirect(reverse('show_books')) def del_books(request,n): models.Book.objects.filter(pk=n).delete() return redirect('show_books') def edit_books(request,n): old_obj = models.Book.objects.get(pk=n) return render(request,'edit_books.html',{'old_obj':old_obj})
from django.db import models # Create your models here. class Book(models.Model): #配置属性 , ID 不写默认创建 name = models.CharField(max_length=32) price = models.FloatField() date = models.DateField() publisher = models.CharField(max_length=32) modify_time = models.DateTimeField(auto_now=True)
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}"> </head> <body> {#布局容器#} <div class="container-fluid"> <h1>查看书籍</h1> {# 栅格系统#} <div class="row"> <div class="col-md-6 col-md-offset-3"> <div> <a href="{% url 'add_books' %}" class="btn btn-primary">添加书籍</a> </div> <table class="table table-hover table-bordered table-striped"> <thead> <tr> <th>编号</th> <th>书籍名称</th> <th>价格</th> <th>出版日期</th> <th>出版社</th> <th>操作</th> </tr> </thead> <tbody> {# <tr>#} {#有多少行并不知道,是后端返回给前端的,所以不能像以前那样写死,用for循环写。#} {# <td></td>#} {# </tr>#} {% for all_books_obj in all_books_objs %} <tr> <td>{{ forloop.counter }}</td> <td>{{ all_books_obj.name }}</td> <td>{{ all_books_obj.price }}</td> <td>{{ all_books_obj.date|date:'Y-m-d' }}</td> <td>{{ all_books_obj.publisher }}</td> <td> <a href="{% url 'edit_books' all_books_obj.pk %}" class="btn btn-warning">编辑</a> {# <a href="del_book/{{ all_books_obj.pk }}" class="btn btn-danger">删除</a>#} <a href="{% url 'del_books' all_books_obj.pk %} " class="btn btn-danger">删除</a> </td> </tr> {% endfor %} </tbody> </table> </div> </div> </div> <script src="{% static 'jquery-3.4.1.js' %}"></script> <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script> <script> </script> </body> </html>
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加书籍</title> <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}"> </head> <body> <div class="container-fluid col-lg-6"> <h2>添加书籍</h2> <div class="row"> <div class="col-lg-6 pull-right"> <form action="{% url 'add_books' %}" method="post"> {% csrf_token %} <div class="form-group"> <label for="exampleInputname">书籍名称</label> <input type="text" class="form-control" id="exampleInputname" placeholder="书籍名称" name="name"> </div> <div class="form-group"> <label for="exampleInputprice">价格</label> <input type="text" class="form-control" id="exampleInputprice" placeholder="价格" name="price"> </div> <div class="form-group"> <label for="exampleInputtime">出版时间</label> <input type="date" class="form-control" id="exampleInputtime" placeholder="出版时间" name="date"> </div> <div class="form-group"> <label for="exampleInputshe">出版社</label> <input type="text" class="form-control" id="exampleInputshe" placeholder="出版社" name="publisher"> </div> <div class="pull-right"> <button type="submit" class="btn btn-success">Submit</button> </div> </form> </div> </div> </div> <script src="{% static 'jquery-3.4.1.js' %}"></script> <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script> <script> </script> </body> </html>
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>编辑书籍</title> <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}"> </head> <body> <div class="container-fluid col-lg-6"> <h2>添加书籍</h2> <div class="row"> <div class="col-lg-6 pull-right"> <form action="{% url 'add_books' %}" method="post"> {% csrf_token %} <div class="form-group"> <label for="exampleInputname">书籍名称</label> <input type="text" class="form-control" id="exampleInputname" placeholder="书籍名称" name="name" value="{{ old_obj.name }}"> </div> <div class="form-group"> <label for="exampleInputprice">价格</label> <input type="text" class="form-control" id="exampleInputprice" placeholder="价格" name="price" value="{{ old_obj.price }}"> </div> <div class="form-group"> <label for="exampleInputtime">出版时间</label> <input type="date" class="form-control" id="exampleInputtime" placeholder="出版时间" name="date" value="{{ old_obj.date|date:'Y-m-d' }}"> </div> <div class="form-group"> <label for="exampleInputshe">出版社</label> <input type="text" class="form-control" id="exampleInputshe" placeholder="出版社" name="publisher" value="{{ old_obj.publisher }}"> </div> <div class="pull-right"> <button type="submit" class="btn btn-success">Submit</button> </div> </form> </div> </div> </div> <script src="{% static 'jquery-3.4.1.js' %}"></script> <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script> <script> </script> </body> </html>

注意时区的区别。需要在setting里设置。

浙公网安备 33010602011771号