无名有名分组反向解析实现数据增删改查——django作业

后端部分

模型层models.py

class Publish(models.Model):
    publish_name = models.CharField(max_length=40)
    publish_addr = models.CharField(max_length=100)

路由层urls.py

# 主路由
url(r'^app01/', include('app01.urls')),

# 子路由
url(r'^publish/', views.publish),
url(r'^addPublish/', views.create_publish),
url(r'^editPublish/(\d+)', views.edit_publish, name='edit'),
url(r'^delPublish/(?P<pid>\d+)', views.del_publish, name='del')



视图函数views.py

from app01 import models
def publish(request):
    publish_queryset = models.Publish.objects.filter().all()
    return render(request, 'publish.html', locals())

def create_publish(request):
if request.method == 'POST':
publish_name = request.POST.get('publish_name')
publish_addr = request.POST.get('publish_addr')
publish_obj = models.Publish.objects.filter(publish_name=publish_name).first()
if publish_obj:
return render(request, 'create_publish.html', {'error': '出版社已存在'})
models.Publish.objects.create(publish_name=publish_name, publish_addr=publish_addr)
return redirect('/app01/publish')
return render(request, 'create_publish.html')

def edit_publish(request, pid):
publish_obj = models.Publish.objects.filter(id=pid).first()
if request.method == 'POST':
publish_name = request.POST.get('publish_name')
publish_addr = request.POST.get('publish_addr')
models.Publish.objects.filter(id=pid).update(publish_name=publish_name, publish_addr=publish_addr)
return redirect('/app01/publish')
return render(request, 'edit_publish.html', locals())

def del_publish(request, pid):
models.Publish.objects.filter(id=pid).delete()
return redirect('/app01/publish')



前端部分

publish.html

<p class="text-right"><a href="/app01/addPublish/" class="btn btn-success">新增</a></p>
<table class="table table-striped mt-3">
    <thead>
    <tr>
        <th>编号</th>
        <th>出版社</th>
        <th>地址</th>
        <th class="text-center">操作</th>
    </tr>
    </thead>
    <tbody>
    {% for publish_obj in publish_queryset %}
        <tr>
            <td>{{ publish_obj.id }}</td>
            <td>{{ publish_obj.publish_name }}</td>
            <td>{{ publish_obj.publish_addr }}</td>
            <td class="text-center">
                <a href="{% url 'edit' publish_obj.id %}" class="btn btn-info btn-sm">编辑</a>
                <a href="{% url 'del' publish_obj.id %}" class="btn btn-danger btn-sm">删除</a>
            </td>
        </tr>
    {% endfor %}
    </tbody>
</table>

edit_publish.html

<div class="contain">
    <div class="row">
        <div class="col-md-8 offset-2">
            <h1 class="text-center">修改出版社信息</h1>
            <form action="" class="" method="post">
                <p><input id="publish" type="text" class="form-control" name="publish_name"
                          placeholder="出版社名" value="{{ publish_obj.publish_name }}"></p>
                <p><input id="addr" type="text" class="form-control" name="publish_addr"
                          placeholder="出版社地址" value="{{ publish_obj.publish_addr }}"></p>
                <p><input id="edit" type="submit" class="btn btn-success form-control" value="修改"></p>
            </form>
        </div>
    </div>
</div>
<script>
    $('#edit').click(function () {
        if (!($('#publish').val() && $('#addr').val())) {
            alert('请完善信息');
            return false
        }
    })
</script>



create_publish.html

<div class="contain">
    <div class="row">
        <div class="col-md-8 offset-2 mt-5">
            <h1 class="text-center">创建出版社</h1>
            {% if error %}
                <div class="alert alert-danger" role="alert">
                    {{ error }}
                </div>
            {% endif %}
            <form action="" class="" method="post">
                <p><input id="publish" type="text" class="form-control" name="publish_name" placeholder="出版社名"></p>
                <p><input id="addr" type="text" class="form-control" name="publish_addr" placeholder="出版社地址"></p>
                <p><input id="create" type="submit" class="btn btn-success form-control" value="提交"></p>
            </form>
        </div>
    </div>
</div>
<script>
    $('#create').click(function () {
        if (!($('#publish').val() && $('#addr').val())) {
            alert('请完善信息');
            return false
        }
    })
</script>
posted @ 2022-07-04 00:38  贾志文  阅读(74)  评论(0)    收藏  举报