zoukankan      html  css  js  c++  java
  • Flask实战第52天:cms添加轮播图前端代码逻辑完成

    首页我们在模态框中的保存按钮加一个id,这样方便我们选取这个按钮

    <button type="button" class="btn btn-primary" id="save-banner-btn">保存</button>

    在static/cms/js/下新建banners.js

    $(function () {
        $("#save-banner-btn").click(function (event) {
            event.preventDefault();
            var dialog = $("#banner-dialog");
            var nameInput = dialog.find("input[name='name']");
            var imageInput = dialog.find("input[name='image_url']");
            var linkInput = dialog.find("input[name='link_url']");
            var priorityInput = dialog.find("input[name='priority']");
    
            var name = nameInput.val();
            var image_url = imageInput.val();
            var link_url = linkInput.val();
            var priority = priorityInput.val();
    
            if(!name || !image_url || !link_url || !priority){
                zlalert.alertInfoToast('请输入完整的轮播图数据!');
                return;
            }
    
            bbsajax.post({
                "url": '/cms/abanner/',
                "data": {
                    'name':name,
                    'image_url': image_url,
                    'link_url': link_url,
                    'priority':priority,
                },
                'success': function (data) {
                    dialog.modal("hide");
                    if(data['code'] == 200){
                        // 重新加载这个页面
                        window.location.reload();
                    }else{
                        zlalert.alertInfo(data['message']);
                    }
                },
                'fail': function () {
                    zlalert.alertNetworkError();
                }
                
            });
        });
    });

    编辑cms.view.py中的banners视图, 获取数据库数据

    @bp.route('/banners/')
    @login_required
    def banners():
        banners = BannerModel.query.order_by(BannerModel.priority.desc()).all()
        return render_template('cms/cms_banners.html', banners=banners)

    编辑cms_banners.html, <tbody>中的内容动态展示

            <tbody>
                {% for banner in banners %}
                    <tr>
                        <td>{{ banner.name }}</td>
                        <td><a href="{{ banner.image_url }}" target="_blank">{{ banner.image_url }}</a></td>
                        <td><a href="{{ banner.link_url }}" target="_blank">{{ banner.link_url }}</a></td>
                        <td>{{ banner.priority }}</td>
                        <td>{{ banner.create_time }}</td>
                        <td>
                            <button class="btn btn-default btn-xs edit-banner-btn">编辑</button>
                            <button class="btn btn-danger btn-xs delete-banner-btn">删除</button>
                        </td>
                    </tr>
                {% endfor %}
            </tbody>

    然后在cms_banners.html中引入banners.js

    {% block head %}
        <script src="{{ url_for('static', filename='cms/js/banners.js')}}"></script>
        ...
    {% endblock %}

    这样,我们添加轮播图的功能就完成了,现在可以加轮播图试试

  • 相关阅读:
    RESTful日#2:使用Unity容器和引导程序在Web api中使用依赖注入实现控制反转
    RESTful日#2:使用Unity容器和引导程序在Web api中使用依赖注入实现控制反转
    带有可选选项的输入文本框(组合框)
    在组合框中嵌入一个DataGridView
    ItemData在。net
    实现一个所有者绘制的组合框
    模板化的“请等待”按钮和模板控件介绍
    使用AvalonEdit (WPF文本编辑器)
    办公风格的扁平组合箱
    【windows】telnet 和一些dos命令
  • 原文地址:https://www.cnblogs.com/sellsa/p/9563040.html
Copyright © 2011-2022 走看看