图书系统的简易代码

1、创建项目‘book_manager’及App‘front’,新建数据库 ‘book_manager’ 及表格 ‘book’ ,在‘setting’中添加数据库信息及App,

2、在App的‘views’文件中填写显示的内容:首页,添加图书,图书详情;及使用数据库所需的代码‘cursor’内容。在项目的‘url’文件中进行url映射;

3、新建base、index、add_book、book_detail的HTML文件,在front App下新建目录:‘static’-->‘front’-->‘base.css文件’,在base.html文件中添加‘link’标签及‘nav’标签’,‘link’标签用来关联地址到"static  'front/base.css’ ",在‘base.css’文件中填写显示网页‘nav’的样式‘;‘nav’标签用来指定导航链接中的内容,可在‘base.css’文件中修改显示的样式。

4、‘table’标签显示表格

一:新建项目

项目名:book_manager    App名:front    数据库名:book_manager

在数据库中新建表book

在项目book_manager的settings.py中添加数据库信息以及新建所需文件

视图文件:

 1 from django.shortcuts import render,redirect,reverse
 2 from django.db import connection
 3 
 4 def get_corsor():
 5     return connection.cursor()
 6 
 7 def index(request):
 8     cursor = get_corsor()
 9     cursor.execute("select id,name,author from book")
10     books = cursor.fetchall()
11     #[(1,'三国演义','罗贯中'),()...]
12     return render(request,'index.html',context={'books':books})
13 
14 def add_book(request):
15     if request.method == 'GET':
16         return render(request,'add_book.html')
17     else:
18         name = request.POST.get('name')
19         author = request.POST.get('author')
20         cursor = get_corsor()
21         #插入数据到数据库后网页进行反转
22         cursor.execute("insert into book(id,name,author) value(NULL,'%s','%s')" % (name,author))
23         return redirect(reverse('index'))
24 
25 def book_detail(request,book_id):
26         cursor = get_corsor()
27         cursor.execute("select id,name,author from book where id=%s" % book_id)
28         book = cursor.fetchone()
29         return render(request,'book_detail.html',context={'book':book})
30 
31 def delete_book(request):
32     if request.method == 'POST':
33         book_id = request.POST.get('book_id')
34         cursor = get_corsor()
35         cursor.execute("delete from book where id=%s" % book_id)
36         return redirect(reverse('index'))
37     else:
38         raise RecursionError('删除图书的method错误!')

映射文件:

1 from django.urls import path
2 from front import views
3 
4 urlpatterns = [
5     path('',views.index,name='index'),
6     path('add_book/',views.add_book,name='add_book'),
7     path('book_detail/<int:book_id>/',views.book_detail,name='book_detail'),
8     path('delete_book/',views.delete_book,name='delete_book'),
9 ]

base.html:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>图书系统管理</title>
 6     <link rel="stylesheet" href="{% static 'front/base.css' %}">
 7 </head>
 8 <body>
 9 <nav>
10     <ul class="nav">
11         <li><a href="/">首页</a></li>
12         <li><a href="{% url 'add_book' %}">发布图书</a></li>
13     </ul>
14 </nav>
15 {% block content %}
16 {% endblock %}
17 </body>
18 </html>

首页:

 1 {% extends 'base.html' %}
 2 {% block content %}
 3     <table><!--表格-->
 4         <thead><!--定义表格表头-->
 5             <tr><!--定义表格中的行-->
 6                 <!--th:表头单元格,通常呈现为居中的粗体文本-->
 7                 <th>序号</th>
 8                 <th>书名</th>
 9                 <th>作者</th>
10             </tr>
11         </thead>
12         <tbody><!--表格正文-->
13             {% for book in books %}
14                 <tr>
15                     <!--td:标准单元格,通常是左对齐的普通文本-->
16                     <td>{{ forloop.counter }}</td>
17                     <td><a href="{% url 'book_detail' book_id=book.0 %}">{{ book.1 }}</a></td>
18                     <td>{{ book.2 }}</td>
19                 </tr>
20             {% endfor %}
21 
22         </tbody>
23     </table>
24 {% endblock %}

添加书籍:

 1 {% extends 'base.html' %}
 2 {% block content %}
 3     <!--form:为用户创建用于向服务器传输数据的HTML表单;action:提交表单时向何处发送表单数据;method:作为url 变量‘get’
 4     还是http post ‘post’两种方式发送数据。-->
 5     <form action="" method="post">
 6     <table>
 7         <tbody>
 8             <tr>
 9                 <td>书名:</td>
10                 <td><input type="text" name="name"></td>
11             </tr>
12             <tr>
13                 <td>作者:</td>
14                 <td><input type="text" name="author"></td>
15             </tr>
16             <tr>
17                 <td></td>
18                 <td><input type="submit" value="提交"></td>
19             </tr>
20         </tbody>
21     </table>
22     </form>
23 {% endblock %}

书籍详情及删除:

 1 {% extends 'base.html' %}
 2 {% block content %}
 3     <p>书名:{{ book.1 }}</p>
 4     <p>作者:{{ book.2 }}</p>
 5     <form action="{% url 'delete_book' %}" method="post">
 6         <!--hidden:使其要发送的内容隐藏,这里只需显示删除按钮-->
 7         <input type="hidden" name="book_id" value="{{ book.0 }}">
 8         <input type="submit" value="删除图书">
 9     </form>
10 {% endblock %}

样式文件:

 1 *{
 2     margin: 0;/*设置整体边距*/
 3     padding: 0;/*设置填充*/
 4 }
 5 
 6 .nav{
 7     background: #3a3a3a;
 8     height: 65px;
 9     overflow: hidden;
10 }
11 .nav li{
12     float: left;/*左边浮动对齐*/
13     list-style: none;/*去除样式*/
14     margin: 0 20px;/*字体边距*/
15     line-height: 65px;/*行高与外框一样使字体居中*/
16 }
17 .nav li a{
18     color: #fff;
19     text-decoration: none;/*文字不进行修饰,去除下划线*/
20 }
21 
22 .nav li a:hover{
23     color: lightgreen;
24 }

猜你喜欢

转载自www.cnblogs.com/liqiongming/p/10380994.html