zoukankan      html  css  js  c++  java
  • 图书系统的简易代码

    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> 
    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 }
  • 相关阅读:
    Python中Pickle模块的dump()方法和load()方法
    python的@classmethod和@staticmethod的区别和使用
    Python 正则表达式
    Python 函数
    Python time和datetime
    python 文件操作
    Python 集合的交差并补操作及方法
    python 字典相关函数和操作方法
    python 列表(list)操作及函数
    python 深浅拷贝
  • 原文地址:https://www.cnblogs.com/liqiongming/p/10380994.html
Copyright © 2011-2022 走看看