Django框架图书管理之查看书籍与添加书籍
![](https://img2022.cnblogs.com/blog/1413093/202207/1413093-20220709212624705-1468718715.png)
from django.shortcuts import render,HttpResponse
from book.models import Book
import datetime
# Create your views here.
def add_book(request):
if request.method == "GET":
return render(request, "add_book.html")
else:
#方式一
#title =request.POST.get("title")
#price = request.POST.get("price")
#pub_date = request.POST.get("pub_date")
#Book.objects.create(title=title,price=price,pub_date=pub_date)
#方式二
#request.POST.dict()
Book.objects.create(**request.POST.dict())
return redirect("/book/select")
#return HttpResponse("添加书籍")
#添加书籍
# 方式1
#date = datetime.date(year=2012,month=12,day=12)
#book = Book(title="xiyouji", price=199, pub_date=date)
book = Book(title="xiyouji",price=199,pub_date="2012-12-12")
print(book.id) #None
book.save() #执行sql
print(book.id) # 3
# 方式2
book = Book.objects.create(title="sanguoyanyi",price=299,pub_date="2011-11-11")
print(book.id)
print(book.price)
def select_book(request):
#return render(request,"add_book.html")
# (1) 查询所有的书籍,返回值是一个queryset类型对象
book_list= Book.objects.all()
'''
ORM数据引擎:
select id, title, price, pub_date from book:
+------+--------------+---------+------------+
id title price pub_date
+------+--------------+---------+------------+
1 西游记 499.00 2011-12-12
2 三国演义 399.00 2019-06-12
3 水浒传 299.00 2008-06-12
4 红楼梦 199.00 2020-06-12
+------+--------------+---------+------------+
book01 = Book(1 | 西游记 |499.00 |2011-12-12)
book02 = Book(2 | 三国演义 |399.00 |2019-06-12)
book03 = Book(3 | 水浒传 |299.00 |2008-06-12)
book04 = Book(4 | 红楼梦 |199.00 |2020-06-12)
book_list = queryset[book01,book02,book03,book04]
'''
print ("book_list",book_list) # <QuerySet [<Book: Book object (1)>,...]
#QuerySet:支持索引操作,支持遍历
book = book_list[0]
print(book.id) # 1
print(book.title) # 西游记
print(book.price) # 499.00
# print(book_list.title)
#for book in book_list:
#print (book.id,book.title) #1 西游记 2 三国演义 3 水浒传 4 红楼梦
#return HttpResponse("添加书籍")
return render(request,"books.html",{"book_list":book_list})
![](https://img2022.cnblogs.com/blog/1413093/202207/1413093-20220709212656118-2121834509.png)
{% extends "base.html" %}
{% block title %}
<form action="">
<div class="from-group">
<lable for="">书籍名称</lable>
<input type="text" class="form-control">
</div>
<div class="from-group">
<lable for="">书籍价格</lable>
<input type="text" class="form-control">
</div>
<div class="from-group">
<lable for="">出版日期</lable>
<input type="date" class="form-control">
</div>
<div class="from-group">
<input type="submit" class="btn" success pull-right>
</div>
</form>
{% endfor %}
![](https://img2022.cnblogs.com/blog/1413093/202207/1413093-20220709212707525-1458857598.png)
from django.db import models
# Create your models here.
class Book(models.Model):
id = models.AutoField(primary_key=True) #自增类型
title = models.CharField(max_length=32,unique=True) #字符串
price = models.DecimalField(max_digits=8,decimal_places=2) #浮点数
pub_date = models.DateField() #日期类型年月日
pub_dates = models.DateTimeField #日期类型精确到时分秒
class Meta:
db_table = "book"
![](https://img2022.cnblogs.com/blog/1413093/202207/1413093-20220709212720005-1312711045.png)
{% extends "base.html" %}
{% block title %}
<title>书籍</title>
{% endblock %}
{% block content %}
<p>
<a href="/book/add_book" class="btn btn-primary">添加书籍</a>
</p>
<table>
<tr>
<th>序号</th>
<th>书籍名称</th>
<th>书籍价格</th>
<th>书籍出版日期</th>
</tr>
{% for book in book_list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ book.title }}</td>
<td>{{ book.price }}</td>
<td>{{ book.pub_date|date:"Y-m-d" }}</td>
</tr>
{% endfor %}
</table>