前言

本文 上接 Django - 与 Mysql 结合的 基本配置操作 并实现查询功能

添加数据

(1)实现view

store/views.py

获取name 与 address的值,添加到数据库,返回 AddSuccess字样

# 添加一条store信息
def add_store_info(request):
    name = request.POST['name']
    address = request.POST['address']
    create = StoreInfo.objects.create(name=name, address=address)
    print(type(create), create)
    return HttpResponse("Add Success")

(2)实现 表单

store/templates/store_list.html

注意: 表单中需要添加 {% csrf_token %}

<h1>Add</h1>
<form action="add" method="post">
    {% csrf_token %}
    <label>商店名称: </label>
    <input name="name" type="text">
    <label>商店地址 : </label>
    <input name="address" type="text">

    <input value="提交" type="submit">
</form>

(3)配置URLS

store/urls.py

代码如下:

urlpatterns = [
    url(r'^list$', views.select_store_list),
    url(r'^add$', views.add_store_info), #添加对应的信息
]

结果 :

这里写图片描述

views中 打印的创建返回值结果如下:

<class 'store.models.StoreInfo'> 拉面南京东路 #返回的值 是创建的对象

删除一条信息

(1)实现view

store/views.py

描述:通过pk主键(id)查询后,进行删除操作,并打印删除后返回值,返回Delete Success字样

# 删除一条store信息
def delete_store_info(request, pk):
    storeInfo = StoreInfo.objects.get(pk=pk)
    delete = storeInfo.delete()
    print(type(delete), delete)
    return HttpResponse("Delete Success")

(2)配置Url

store/urls.py

代码如下:

urlpatterns = [
    url(r'^list$', views.select_store_list),
    url(r'^add$', views.add_store_info),
    url(r'^delete/(?P<pk>[0-9]+)$', views.delete_store_info), #删除操作的url,后面是正则pk的写法
]

(3) 模板实现如下

store/templates/store_list.html

实现如下

<table border="1">
    <thead>
    <tr>
        <th>名称</th>
        <th>地址</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
    {% for foo in content %}
        <tr>
            <td>{{ foo.name }}</td>
            <td>{{ foo.address }}</td>
            <td><a href="delete/{{ foo.id }}">删除</a></td> #在这里添加链接删除
        </tr>
    {% endfor %}
    </tbody>
</table>

执行后结果预览:

这里写图片描述

打印的返回值如下 :

<class 'tuple'> (1, {'store.StoreInfo': 1}) #影响数据的行数

总结

这里需要注意的是 表单提交的时候 需要添加 {% csrf_token %} ,才可以通过。 更新操作就不写了,后面将进行深入的学习。

Django mysite project DownLoad

Logo

更多推荐