Django创建web项目

1、配置数据库

 打开settings.py 文件,添加如下内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'bms',# 要连接的数据库,连接前需要创建好
        'USER':'root',# 连接数据库的用户名
        'PASSWORD':'root',# 连接数据库的密码
        'HOST':'127.0.0.1',# 连接主机,默认本级
        'PORT':3306,#  端口 默认3306
    }
}

2、创建表

 打开应用中的models.py文件,添加如下内容:

class Food(models.Model):
    title=models.CharField(max_length=32,default="None")
    price=models.DecimalField(max_digits=8,decimal_places=2,default=666)
    create_date=models.DateField(default='2019-08-30')

3、在指定数据库中创建表

python manage.py makemigrations
python manage.py migrate

4、新增数据

路由:path('book/add/', views.book_add,name='addBook'),

注意:此处通过添加name的值,下面的方法通过name反向解析(reverse),可获得最新的路由地址。  

在form表单中添加 {% csrf_token %}

后台代码

新增方法:

方式一:
book_obj=Book.objects.create(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
方式二:
book_obj=Book(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
book_obj.save()

5、查询数据

路由:path('book/search/', views.book_search,name="showBooks"),

后台代码:

# 查询图书
def book_search(request):
    book_list = Book.objects.all()
    # print(book_list)
    return render(request, "show_books.html", {"book_list": book_list})

前台代码:

 <tbody>
            {% for book in book_list %}
                <tr>
{#                    <td>{{ forloop.counter}}</td>#}
                    <td>{{ book.id }}</td>
                    <td>{{ book.title }}</td>
                    <td>{{ book.price }}</td>
                    <td>{{ book.pub_date|date:"Y-m-d" }}</td>
                    <td>{{ book.pub_lish }}</td>
                    <td>
                        <a href="{% url 'editBook' book.id %}" class="btn btn-warning btn-sm">编辑</a>
                        <a href="{% url 'delBook' book.id %}" class="btn btn-danger btn-sm">删除</a>
                    </td>
                </tr>
            {% endfor %}
        </tbody>

6、删除数据

路由:re_path('book/del/(\d+)', views.book_del,name='delBook'),

 后台代码:

# 删除图书
def book_del(request, book_id):
    Book.objects.filter(id=book_id).delete()
    return redirect(reverse("showBooks"))

前台代码:

<a href="{% url 'delBook' book.id %}" class="btn btn-danger btn-sm">删除</a>

7、修改数据

路由:re_path('book/update/(\d+)', views.book_update,name='editBook'),

 后台代码:

# 修改图书
def book_update(request, book_id):
    # Book.objects.filter(id=book_id).update(title='哪吒闹海')
    # return redirect(reverse("books"))

    if request.method == "GET":
        book = Book.objects.filter(id=book_id)[0]
        return render(request, "update_book.html", {"book": book})
    else:
        # 获取用户修改的数据
        title = request.POST.get("title")
        price = request.POST.get("price")
        pub_date = request.POST.get("pub_date")
        pub_lish = request.POST.get("pub_lish")

        Book.objects.filter(id=book_id).update(title=title,price=price,pub_date=pub_date,pub_lish=pub_lish)

        return  redirect(reverse("showBooks"))
发布了39 篇原创文章 · 获赞 6 · 访问量 2021

猜你喜欢

转载自blog.csdn.net/weixin_45493345/article/details/100186247
今日推荐