前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django的接口新增页面的前端代码(十)

Django的接口新增页面的前端代码(十)

作者头像
zx钟
发布2019-07-18 21:55:07
5640
发布2019-07-18 21:55:07
举报
文章被收录于专栏:测试游记测试游记

本次来写一下接口新增页面,为了方便管理接口,决定采用postman的文件夹存放的形式来存放,这样我们就需要增加一个接口集管理的页面。 复制一下接口新增部分的html

代码语言:javascript
复制
 1<li>
 2  <a href="#">
 3    <i class="fa fa-cogs"></i>
 4    <span>接口集管理</span>
 5  </a>
 6</li>
 7<li>
 8  <a href="#">
 9    <i class="fa fa-cogs"></i>
10    <span>接口新增</span>
11  </a>
12</li>

刷新一下页面可以看到效果

展示效果 但是明显有点问题! 就是怎么可以用一样的图标呢。 我们从箱底翻出AdminLTE-2.4.5

AdminLTE-2.4.5 打开index.html这个宝库,找到图标库。

图标库 然后从中挑选出喜欢的图标来进行替换。 所以我随便挑了fa-clone

图标 修改图中所在的位置:

修改 再次刷新页面就可以看到新的图标了

新图标 新建一个文件callections.html继承于base.html

代码语言:javascript
复制
 1{% extends 'index/base.html' %}
 2
 3{% block title %}
 4  接口管理平台-接口集管理
 5{% endblock %}
 6
 7{% block content_header %}
 8  接口相关
 9{% endblock %}
10
11{% block header_option_desc %}
12  接口集管理
13{% endblock %}

大致效果 在脑海中形成如上的一副结构图,然后我们就用代码实现它 记得我们之前在base.html里面挖的{% block content %}坑吧 填上它!

代码语言:javascript
复制
 1{% block content %}
 2  <div class="row">
 3    <div class="col-md-12 col-xs-12 col-sm-12">
 4      <div class="box box-primary">
 5        <div class="box-header">
 6          <button class="btn btn-primary pull-right" id="btn-add-tag">新建接口集</button>
 7        </div>
 8        <div class="box-body">
 9          <table class="table table-bordered table-hover">
10            <thead>
11            <tr>
12              <th>接口集名称</th>
13              <th>接口数量</th>
14              <th>操作</th>
15            </tr>
16            </thead>
17            <tbody>
18            {% for one_tag in tags %}
19              <tr data-id="{{ one_tag.id }}" data-name="{{ one_tag.name }}">
20                <td>{{ one_tag.name }}</td>
21                <td>{{ one_tag.num_news }}</td>
22                <td>
23                  <button class="btn btn-xs btn-warning btn-edit">编辑</button>
24                  <button class="btn btn-xs btn-danger btn-del">删除</button>
25                </td>
26              </tr>
27            {% endfor %}
28            </tbody>
29          </table>
30        </div>
31      </div>
32    </div>
33  </div>
34{% endblock %}

为了看到效果,我们还需要使用get来进行渲染 在apps/workspace/views.py里新建一个类视图

代码语言:javascript
复制
1class CallectionsView(View):
2    def get(self, request):
3        return render(request, 'index/callections.html')

然后去apps/workspace/urls.py里面加上它的路由 path('callections/', views.CallectionsView.as_view(), name='callections'), 最后去base页面找到接口集管理的a标签,将它修改为 <a href={% url 'callections' %}> 这样我们就完成来html页面的编写 之后会动态的从数据库中读取,并使用for循环生成展示。

接下来编写前端JS相关代码 在本页面应该有三个按钮对应三个主要的操作:新建,编辑,删除。 首先分析一下新建: 使用ID找到对应的新增按钮: let $tagAdd = $("#btn-add-tag"); 然后是监听它的点击事件: $tagAdd.click(function () {} 本次使用post请求发送ajax请求 成功的话返回接口集名称添加成功,失败返回服务器超时,请重试! 所以新增部分代码如下:

代码语言:javascript
复制
 1// 添加
 2    let $tagAdd = $("#btn-add-tag");  // 1. 获取添加按钮
 3    $tagAdd.click(function () {   // 2. 点击事件
 4        fAlert.alertOneInput({
 5            title: "请输入接口集名称",
 6            text: "长度限制在20字以内",
 7            placeholder: "请输入接口集名称",
 8            confirmCallback: function confirmCallback(inputVal) {
 9                console.log(inputVal);
10
11                if (inputVal === "") {
12                    swal.showInputError('接口集名称不能为空');
13                    return false;
14                }
15
16                let sDataParams = {
17                    "name": inputVal
18                };
19
20                $.ajax({
21                    // 请求地址
22                    url: "/callections/",  // url尾部需要添加/
23                    // 请求方式
24                    type: "POST",
25                    data: JSON.stringify(sDataParams),
26                    // 请求内容的数据类型(前端发给后端的格式)
27                    contentType: "application/json; charset=utf-8",
28                    // 响应数据的格式(后端返回给前端的格式)
29                    dataType: "json",
30                })
31                    .done(function (res) {
32                        if (res.errno === "0") {
33                            fAlert.alertSuccessToast(inputVal + " 接口集名称添加成功");
34                            setTimeout(function () {
35                                window.location.reload();
36                            }, 1000)
37                        } else {
38                            swal.showInputError(res.errmsg);
39                        }
40                    })
41                    .fail(function () {
42                        message.showError('服务器超时,请重试!');
43                    });
44
45            }
46        });
47    });
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档