simple book page

This commit is contained in:
ridethepig 2022-11-13 23:55:47 +08:00
parent 4176572fef
commit 018499d722
3 changed files with 88 additions and 2 deletions

View File

@ -152,4 +152,21 @@ user_notecount int NOT NULL DEFAULT 0,
CONSTRAINT `fk_user_stat_user` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`) ON DELETE CASCADE, CONSTRAINT `fk_user_stat_user` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`) ON DELETE CASCADE,
CONSTRAINT `ck_usedspace` CHECK (user_usedspace <= user_limit) CONSTRAINT `ck_usedspace` CHECK (user_usedspace <= user_limit)
); );
-- insert into user_stat values (1,1,1,1,1,1); -- insert into user_stat values (1,1,1,1,1,1);
drop view if exists `v_book_to_types`;
create view `v_book_to_types` as
select book_id, typetable.type_id as type_id, type_name from book_type natural join typetable;
drop view if exists `v_type_to_book`;
create view `v_type_to_book` as
select book_id,
book_name,
book_isbn,
book_publisher,
book_lang,
book_author,
user_id,
type_id,
type_name
from book natural join book_type natural join typetable;

View File

@ -0,0 +1,59 @@
{% extends 'base.html' %}
{% block header %}
<style>
.maindiv {
height: 100%;
width: 100%;
position: fixed;
z-index: 1;
top: 20;
left: 0;
overflow-x: hidden;
padding-left: 1.2rem;
padding-right: 2rem;
}
.sidenav {
height: 100%;
max-width: 160px;
z-index: 1;
overflow-x: hidden;
}
</style>
{% endblock %}
{% block content %}
<div class="container maindiv">
<div class="columns">
<div class="column col-3">
<ul class="nav">
<li class="nav-item">
<a href="/home">主页</a>
</li>
<li class="nav-item">
<a href="/search">搜索</a>
</li>
<li class="nav-item">
<a href="/addbook">增加</a>
</li>
<li class="nav-item">
<a href="/tags">分类</a>
</li>
</ul>
</div>
<div class="column col-9 panel">
<div class="panel-header">
<div class="panel-title h4">{{book['book_name']}}</div>
</div>
<div class="panel-body">
{% for atype in booktype %}
<span class="chip"> {{atype['type_name']}}</span>
{% endfor %}
</div>
<div class="panel-footer">
Rendered @ {{cur_time}}
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -172,7 +172,7 @@ def search():
querystring = "select * from book where user_id=%d" % (g.user['user_id']) querystring = "select * from book where user_id=%d" % (g.user['user_id'])
queryval = "" queryval = ""
elif bookattr == "分类": elif bookattr == "分类":
querystring = "SELECT * from book WHERE user_id=%d AND book_id IN (select book_id from book_type, typetable where type_name LIKE \'%%%s%%\')" % (g.user['user_id'], queryval) querystring = "SELECT * from v_type_to_book WHERE user_id=%d AND type_name LIKE \'%%%s%%\'" % (g.user['user_id'], queryval)
else: else:
querystring = "select * from book where user_id=%d and %s like \'%%%s%%\'" % (g.user['user_id'], queryattr, queryval) querystring = "select * from book where user_id=%d and %s like \'%%%s%%\'" % (g.user['user_id'], queryattr, queryval)
querystring += " limit %d offset %d" % (page_lim, page_off) querystring += " limit %d offset %d" % (page_lim, page_off)
@ -188,3 +188,13 @@ def search():
cur_time=datetime.datetime.now(), error=error, queryresult=queryresult, cur_time=datetime.datetime.now(), error=error, queryresult=queryresult,
next_page_link=next_page_link, prev_page_link=prev_page_link, next_page_link=next_page_link, prev_page_link=prev_page_link,
page_last=page_last, page_first=(page==1), queryval=queryval, queryattr=attr_dict) page_last=page_last, page_first=(page==1), queryval=queryval, queryattr=attr_dict)
@bp.route("/book/<int:id>/", methods=("GET", "POST"))
@login_required
def book(id):
db = get_db()
book = db.execute("select * from book where book_id=?", (id,)).fetchone()
booktype = db.execute("select * from v_book_to_types where book_id=?", (book['book_id'], )).fetchall()
return render_template("/user/book.html",
book=book, booktype=booktype,
cur_time=datetime.datetime.now())