ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

分类

2020-07-10 22:35:24  阅读:204  来源: 互联网

标签:form get 分类 request cat id dir


 

 

#分类树
def build_tree(data,p_id,level=0):
    """
    生成树菜单
    :param data:    数据
    :param p_id:    上级分类
    :param level:   当前级别
    :return:
    """
    tree = []
    for row in data:
        if row['parent_id'] ==p_id:
            row['level'] = level
            child = build_tree(data, row['cat_id'], level+1)
            row['child'] = []
            if child:
                row['child'] += child
            tree.append(row)

    return tree


#生成分类,用于下拉列表
def build_table(data, parent_title='顶级菜单'):
    html = ''
    for row in data:
        splice = '├ '
        cat_id=row['cat_id']
        title = splice * row['level'] + row['cat_name']
        tr_td = """<option value={cat_id}>  {title}</option>
                                   """
        if row['child']:
            html += tr_td.format(class_name='top_menu', title=title,cat_id=cat_id)
            html += build_table(row['child'], row['cat_name'])
        else:
            html += tr_td.format(class_name='', title=title,cat_id=cat_id)
            # return html
    return html


#生成分类列表的HTML
def creat_cat_list(data, parent_title='顶级菜单'):
    html = ''
    for row in data:
        splice = '-- '
        cat_id=row['cat_id']
        cat_sort = row['cat_sort']
        title = splice * row['level'] + row['cat_name']
        description = row['description']
        dir = row['dir']
        tr_td = """<tr>
        <td align="left"> <a href="article.php?cat_id={cat_id}"></a>{title}</td>
        <td>{dir}</td>
        <td>{description}</td>
        <td align="center">{cat_sort}</td>
        <td align="center"><a href="../article_cat_edit/{cat_id}" >编辑</a>| <a href="../article_cat_del/{cat_id}" onClick="rec();return false">删除</a> </td>
      </tr>
                                   """

        if row['child']:
            html += tr_td.format(class_name='', title=title,cat_id=cat_id, description= description,dir=dir,cat_sort=cat_sort)
            html += creat_cat_list(row['child'], row['cat_name'])
        else:
            html += tr_td.format(class_name='-', title=title,cat_id=cat_id,description= description,dir=dir,cat_sort=cat_sort)
            # return html
    return html


#添加分类
@bp.route('/article_cat_add/',methods=['GET', 'POST'])
@login_required
def article_cat_add():
    if request.method == 'GET':
        categorys=Articles_Cat.query.all()#取得所有分类
        list = []
        data =  {}

        for cat in categorys:
            data=dict(cat_id=cat.cat_id, parent_id=cat.parent_id,cat_name=cat.cat_name)
            list.append(data)
        data=build_tree(list,0,0)
        print(data)
        # print(list)
        html=build_table(data, parent_title='顶级菜单')
        # print(html)
        return render_template('admin/article_cat.html',message=html)#article_cat.html
    else:
        form=Article_cat(request.form)
        p = Pinyin()
        dir = request.form.get('dir')
        print(dir)
        if form.validate():
            parent_id = request.form.get('parent_id')
            cat_name = request.form.get('cat_name')
            dir = request.form.get('dir')
            check=request.form.get('check')
            if check:
                dir = request.form.get('cat_name')
                dir=p.get_pinyin(dir, '')
            else:
                if dir:
                    dir = request.form.get('dir')
                else:
                    dir = request.form.get('cat_name')
                    dir = p.get_pinyin(dir, '')
            keywords = request.form.get('keywords')
            description = request.form.get('description')
            cat_sort = request.form.get('cat_sort')
            status= request.form.get('status')
            insert = Articles_Cat(parent_id=parent_id, cat_name=cat_name, dir=dir, keywords=keywords,description=description, cat_sort=cat_sort,status=status)
            db.session.add(insert)
            db.session.commit()
            return redirect(url_for('admin.article_cat_list'))
        else:
            print("校验没有通过")
            return "校验没通过 "


#栏目列表
@bp.route('/article_cat_list/',methods=['GET'])
@login_required
#@admin_auth
def article_cat_list():
    if request.method == 'GET':
        categorys = Articles_Cat.query.all()  # 取得所有分类
        list = []
        data = {}

        for cat in categorys:
            data = dict(cat_id=cat.cat_id, parent_id=cat.parent_id, cat_name=cat.cat_name,description=cat.description,dir=cat.dir,cat_sort=cat.cat_sort)
            list.append(data)
        data = build_tree(list, 0, 0)
        html = creat_cat_list(data, parent_title='顶级菜单')
        return render_template('admin/articel_cat_list.html',message=html)


#文章栏目编辑并保存
@bp.route('/article_cat_edit/<id>/', methods=['GET','POST'])
@login_required
def article_cat_edit(id):
    if request.method == 'GET':
        cat_list = Articles_Cat.query.filter_by(cat_id=id).first()
        categorys = Articles_Cat.query.all()  # 取得所有分类
        list = []
        data = {}
        for cat in categorys:
            data = dict(cat_id=cat.cat_id, parent_id=cat.parent_id, cat_name=cat.cat_name)
            list.append(data)
        data = build_tree(list, 0, 0)
        html = build_table(data, parent_title='顶级菜单')
        return render_template('admin/articel_cat_edit.html',content=cat_list,message=html)
    else:
        form = Article_cat(request.form)
        p = Pinyin()
        if form.validate():
            parent_id = request.form.get('parent_id')
            print(parent_id)
            cat_id = int(request.form.get('cat_id'))
            cat_name = request.form.get('cat_name')
            dir = request.form.get('dir')
            check = request.form.get('check')
            if check:
                dir = request.form.get('cat_name')
                dir = p.get_pinyin(dir, '')
            else:
                if dir:
                    dir = request.form.get('dir')
                else:
                    dir = request.form.get('cat_name')
                    dir = p.get_pinyin(dir, '')
            keywords = request.form.get('keywords')
            description = request.form.get('description')
            cat_sort = request.form.get('cat_sort')
            status = request.form.get('status')
            Articles_Cat.query.filter(Articles_Cat.cat_id == cat_id).update(
                {Articles_Cat.parent_id: parent_id, Articles_Cat.cat_name: cat_name, Articles_Cat.dir: dir, \
                 Articles_Cat.keywords: keywords, Articles_Cat.description: description,
                 Articles_Cat.cat_sort: cat_sort, Articles_Cat.status: status \
                 })
            db.session.commit()
            return redirect(url_for('admin.article_cat_list'))


#文章栏目修改保存
@bp.route('/article_cat_save/', methods=['POST'])
@login_required
def article_cat_save():
    form = Article_cat(request.form)
    p = Pinyin()
    if form.validate():
        parent_id = request.form.get('parent_id')
        print(parent_id)
        cat_id = int(request.form.get('cat_id'))
        cat_name = request.form.get('cat_name')
        dir = request.form.get('dir')
        check = request.form.get('check')
        if check:
            dir = request.form.get('cat_name')
            dir = p.get_pinyin(dir, '')
        else:
            if dir:
                dir = request.form.get('dir')
            else:
                dir = request.form.get('cat_name')
                dir = p.get_pinyin(dir, '')
        keywords = request.form.get('keywords')
        description = request.form.get('description')
        cat_sort = request.form.get('cat_sort')
        status = request.form.get('status')
        Articles_Cat.query.filter(Articles_Cat.cat_id==cat_id).update({Articles_Cat.parent_id: parent_id,Articles_Cat.cat_name: cat_name,Articles_Cat.dir: dir, \
                                 Articles_Cat.keywords: keywords,Articles_Cat.description: description, Articles_Cat.cat_sort: cat_sort, Articles_Cat.status: status\
                                                                       })
        db.session.commit()
        return redirect(url_for('admin.article_cat_list'))

 

<div class="container">
    <div class="mainBox" style="height:auto!important;height:550px;min-height:550px;">

        <h3><a href="{{ url_for('admin.article_cat_add') }}" class="actionBtn add">添加分类</a>文章分类</h3>
        <!--<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableBasic">-->
        <table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">

            <tr>
                <th width="120" align="left">分类名称</th>
                <th align="left">别名</th>
                <th align="left">简单描述</th>
                <th width="60" align="center">排序</th>
                <th width="80" align="center">操作</th>
            </tr>

            {% if message %}
                {{ message| safe }}
            {% endif %}


        </table>
    </div>

 

 

<body>
<script language="JavaScript">
    $(function () {
        var checkok1 = false;
        var checkok2 = false;
        var checkok3 = false;
        var checkok4 = false;

        //栏目输入框失去焦点时
        $('input[name="cat_name"]').on('blur', function () {
            if (($('#cat_name').val() == '')) {
                layer.msg('栏目名称不能为空');
            } else {
                checkok1 = true;
            }
        });


        //判断是否被选中
        $("#check").change(function () {
            /*chekbox选中返回true,否则为false*/
            //var check = $(this).is(":checked");
            if (($(this).is(":checked") == true)) {
                $("#dir").hide();
            } else {
                $("#dir").show();
            }

            //alert("checkbox为:"+check);
        });

        //栏目关键字输入框失去焦点时
        $('input[name="keywords"]').on('blur', function () {
            if (($('#keywords').val() == '')) {
                layer.msg('栏目关键字不能为空');
            } else {
                checkok2 = true;
            }
        });
        //栏目描述输入框失去焦点时
        $('textarea[name="description"]').on('blur', function () {
            if (($('#description').val() == '')) {
                layer.msg('栏目描述不能为空');
            } else {
                checkok3 = true;
            }
        });
        //提交按钮,所有验证通过方可提交
        $('#submit').click(function () {
            if (checkok1 && checkok2 && checkok3) {
                $('form').submit();
            } else {
                return false;
            }
        });


    })

</script>


<div class="container">
    <form action="{{ url_for('admin.article_cat_add') }}" class="form-horizontal" role="form" method='post'>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">上级栏目 </label>
            <div class="col-sm-2">
                <select name="parent_id" id="parent_id" class="selectpicker show-tick form-control">
                    <option value="0">无</option>
                    {% if message %}
                        {{ message| safe }}
                    {% endif %}
                </select>
            </div>
        </div>


        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">栏目名称</label>
            <div class="col-sm-4">
                <input id="cat_name" name="cat_name" class="form-control" type="text">
            </div>
        </div>


        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">分类别名</label>
            <div class="col-sm-4">

                <div class="form-inline">
                    <input id="dir" name="dir" class="form-control" type="text">
                    <input name="check" id="check" type="checkbox" value="1">拼音
                </div>

            </div>
        </div>

        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">关键字 </label>
            <div class="col-sm-4">
                <input class="form-control" type="text" id="keywords" name="keywords">
            </div>
        </div>


        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">栏目描述</label>
            <div class="col-sm-6">
                <textarea id="description" class="form-control" rows="3" name="description"></textarea>
            </div>
        </div>


        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">排序 </label>
            <div class="col-sm-3">
                <input id="cat_sort" class="form-control" type="text" name="cat_sort" value="1">
            </div>
        </div>
        <input type="hidden" id="status" class="form-control" name="status" value="1">
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label"> </label>
            <div class="col-sm-2">
                <button id="submit" neme="submit" class="btn btn-sm btn-primary btn-block" type="submit">提交</button>
            </div>
        </div>


    </form>


</div>
</body>

 

 

<div class="container">
    <form action="" class="form-horizontal" role="form" method='post'>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">上级栏目 </label>
            <div class="col-sm-2">
                <select name="parent_id" id="parent_id" class="selectpicker show-tick form-control">
                    <option value="0">无</option>
                    {% if message %}
                        {{ message| safe }}
                    {% endif %}
                </select>
            </div>
            <script type="text/javascript">
                $(function () {
                    $("#parent_id option[value={{ content.parent_id| safe }}]").attr("selected", "selected");
                });
            </script>
        </div>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">栏目名称</label>
            <div class="col-sm-4">
                <input id="cat_name" name="cat_name" class="form-control" type="text" value="{%- if content -%}
                       {{ content.cat_name }}
                    {%- endif %}" style="text-align:left ">
            </div>
        </div>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">分类别名</label>
            <div class="col-sm-4">
                <div class="form-inline">
                    <input id="dir" name="dir" class="form-control" type="text" style="text-align:left " value="
{%- if content -%}{{ content.dir| safe }}
                    {%- endif %}">
                    <input name="check" id="check" type="checkbox" value="1">拼音
                </div>
            </div>
        </div>

        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">关键字 </label>
            <div class="col-sm-4">
                <input class="form-control" style="text-align:left " type="text" id="keywords" name="keywords"
                       value="{%- if content -%}
                       {{ content.keywords }}
                    {%- endif %}">
            </div>
        </div>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">栏目描述</label>
            <div class="col-sm-6">
      <textarea id="description" class="form-control" rows="3" name="description">{%- if content -%}
          {{ content.description| safe }}
      {%- endif %}</textarea>
            </div>
        </div>
        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label">排序 </label>
            <div class="col-sm-3">
                <input id="cat_sort" class="form-control" type="text" name="cat_sort" value="1">
            </div>
        </div>
        <input type="hidden" id="status" class="form-control" name="status" value="1">
        <input type="hidden" id="cat_id" class="form-control" name="cat_id" value=" {{ content.cat_id| safe }}">
        <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>

        <div class="form-group form-group-sm">
            <label class="col-sm-2 control-label"> </label>
            <div class="col-sm-2">
                <button id="submit" neme="submit" class="btn btn-sm btn-primary btn-block" type="submit">提交</button>
            </div>
        </div>
    </form>
</div>

 

标签:form,get,分类,request,cat,id,dir
来源: https://www.cnblogs.com/lsls30/p/13281776.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有