zoukankan      html  css  js  c++  java
  • 6.1

    实现功能:book单表的增删改查

    代码:

    model.py

    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)
        pub_date = models.DateField()
        price = models.DecimalField(max_digits=8, decimal_places=2)
        publish = models.CharField(max_length=32)

    settings.py

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'bookms',          # 要连接的数据库,连接前需要创建好
            'USER': 'root',            # 连接数据库的用户名
            'PASSWORD': '123',         # 连接数据库的密码
            'HOST': '127.0.0.1',       # 连接主机,默认本机
            'PORT': 3306                # 端口 默认3306
        }
    }
    
    
    # 打印orm转换过程中的sql
    
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console':{
                'level':'DEBUG',
                'class':'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.db.backends': {
                'handlers': ['console'],
                'propagate': True,
                'level':'DEBUG',
            },
        }
    }

    python manage.py makemigrations

    python manage.py migrate

    urls.py

    from django.contrib import admin
    from django.urls import path,re_path
    from app01 import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('addbook/', views.addbook),  # 添加书籍
        path('checkbook/', views.checkbook), # 查看书籍
        re_path(r'checkbook/(d+)/delete',views.delbook), # 删除书籍
        re_path(r'checkbook/(d+)/update', views.update), # 修改书籍
    ]

    views.py

    # -*- encoding:utf-8 -*-
    from django.shortcuts import render,HttpResponse,redirect
    
    from app01.models import Book
    # Create your views here.
    
    def addbook(request):
    
        if request.method == "POST":
            title = request.POST.get("title")
            price = request.POST.get("price")
            pub_date = request.POST.get("pub_date")
            publish = request.POST.get("publish")
    
            book_obj = Book.objects.create(title=title,price=price,pub_date=pub_date,publish=publish)
    
            # return HttpResponse('添加数据成功!')
            # return render(request,'checkbook.html',locals())
            return redirect('/checkbook/')
        return render(request,'addbook.html')
    
    def checkbook(request):
    
        book_list = Book.objects.all()
    
        return render(request,'checkbook.html',locals())
    
    def delbook(request,id):
    
        Book.objects.filter(id=id).delete()
    
        # 重定向
        return redirect('/checkbook/')  # 两次请求
    
    def update(request,id):
    
        book_obj = Book.objects.filter(id=id).first()
    
        if request.method == 'POST':
            title = request.POST.get("title")
            price = request.POST.get("price")
            pub_date = request.POST.get("pub_date")
            publish = request.POST.get("publish")
    
            Book.objects.filter(id=id).update(title=title,price=price,pub_date=pub_date,publish=publish)
    
            return redirect('/checkbook/')
    
        return  render(request,'updatebook.html',{'book_obj':book_obj})

    addbook.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="/static/bs/css/bootstrap.css">
        <title>Title</title>
        <style>
            .container{
                margin-top: 100px;
            }
            .btn{
                margin-top: 10px;
            }
        </style>
    </head>
    <body>
    
        <h3>添加书籍</h3>
    
        <div class="container">
            <div class="row project">
                <div class="col-md-4 col-md-offset-4">
                    <div class="thumbnail" style="height: 288px;">
                        <form action="" method="post">
                           {#  为了通过防跨域请求  #}
                            {% csrf_token %}
                            <div class="form-grop">
                                <label for="bookname">书籍名称</label>
                                <input type="text" class="form-control" name="title" placeholder="请输入书籍名称">
                            </div>
                            <div class="form-grop">
                                <label for="">价格</label>
                                <input type="text" class="form-control" name="price" placeholder="请输入价格">
                            </div>
                            <div class="form-grop">
                                <label for="">出版日期</label>
                                <input type="date" class="form-control" name="pub_date" placeholder="请输入出版日期">
                            </div>
                            <div class="form-grop">
                                <label for="">出版社</label>
                                <input type="text" class="form-control" name="publish" placeholder="请输入出版社">
                            </div>
    
                            <input type="submit" class="btn btn-success pull-right" >
    
                        </form>
                    </div>
                </div>
            </div>
        </div>
    
    </body>
    </html>

    checkbook.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="/static/bs/css/bootstrap.css">
        <title>Title</title>
        <style>
            .container{
                margin-top: 100px;
            }
        </style>
    </head>
    <body>
    
        <h3>查看书籍</h3>
    
        <div class="container">
            <div class="row">
                <div class="col-md-6 col-md-offset-3">
    {#                <div class="thumbnail">#}
                    <a href="/addbook/" class="btn btn-info">添加书籍</a>
                    <table class="table table-bordered table-hover table-condensed">
                        <thead>
                            <tr>
                                <th>书籍名称</th>
                                <th>价格</th>
                                <th>出版日期</th>
                                <th>出版社</th>
                                <th>删除操作</th>
                                <th>编辑操作</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for book in book_list %}
                                <tr>
                                    <td>{{ book.title }}</td>
                                    <td>{{ book.price }}</td>
                                    <td>{{ book.pub_date|date:"Y-m-d" }}</td>
                                    {# date过滤器#}
                                    <td>{{ book.publish }}</td>
                                   {#book.pk这里的pk是主键,也可以写成book.id#}
                                    <td><a href="/checkbook/{{ book.pk }}/delete" class="btn btn-danger">删除</a></td>
                                    <td><a href="/checkbook/{{ book.pk }}/update" class="btn btn-info">编辑</a></td>
                                </tr>
                            {% endfor %}
    
                        </tbody>
                    </table>
    {#                </div>#}
                </div>
            </div>
        </div>
    
    </body>
    </html>

    updatebook.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="/static/bs/css/bootstrap.css">
        <title>Title</title>
        <style>
            .container{
                margin-top: 100px;
            }
            .btn{
                margin-top: 10px;
            }
        </style>
    </head>
    <body>
    
        <h3>编辑书籍</h3>
    
        <div class="container">
            <div class="row project">
                <div class="col-md-4 col-md-offset-4">
                    <div class="thumbnail" style="height: 288px;">
                        <form action="" method="post">
                           {#  为了通过防跨域请求  #}
                            {% csrf_token %}
                            <div class="form-grop">
                                <label for="bookname">书籍名称</label>
                                <input type="text" class="form-control" name="title" value="{{ book_obj.title }}">
                            </div>
                            <div class="form-grop">
                                <label for="">价格</label>
                                <input type="text" class="form-control" name="price" value="{{ book_obj.price }}">
                            </div>
                            <div class="form-grop">
                                <label for="">出版日期</label>
                                <input type="date" class="form-control" name="pub_date" value="{{ book_obj.pub_date|date:"Y-m-d" }}">
                            </div>
                            <div class="form-grop">
                                <label for="">出版社</label>
                                <input type="text" class="form-control" name="publish" value="{{ book_obj.publish }}">
                            </div>
    
                            <input type="submit" class="btn btn-success pull-right" >
    
                        </form>
                    </div>
                </div>
            </div>
        </div>
    
    </body>
    </html>
  • 相关阅读:
    jquer 的简输出
    jQuery 效果999动画 延迟
    Windows Mobile开发环境搭建指南
    使用.NET 框架压缩版开发Windows Mobile 2003 for Smartphone
    SmartPhone 2003 手机编程实战之一[转载]
    Smartphone移动开发—自己开发一个天气预报服务 (转载)
    101个微软提供的Visual Studio 2005示例
    基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介
    手机耐用绝对秘密方法
    Cheese 游戏编程:第 4 部分 (转自MSDN)
  • 原文地址:https://www.cnblogs.com/mumupa0824/p/10281855.html
Copyright © 2011-2022 走看看