Flask-cms 实现后台模块 --- 所有项目(六)

本文介绍了Flask-cms后台管理中如何实现相册删除(使用ajax)、时间格式化、搜索功能、数据分页、项目删除和批量删除。还详细讲解了添加欢迎提示语以及数据可视化的步骤,包括绘制折线图展示每年每月新增项目数量的接口和前端展示方法。
摘要由CSDN通过智能技术生成

删除相册

本次功能,我们选择使用 ajax 来实现

templates/admin/project/edit.html 中,给删除按钮写点样式,代码如下:

{
   % block css %}
.
.
<style>
    .cancel {
   
        cursor: pointer;
    }
</style>
{
   % endblock %}
{
   % block js %}
<script>
   $(function () {
   
       $('.cancel').click(function () {
   
           if (confirm('删除后不可恢复,请慎重!')) {
   
               var id = $(this).data('id')
               var _this = $(this)
               $.ajax({
   
                   type: "DELETE",
                   url: "/admin/project/del_gallery",
                   data: JSON.stringify({
   id: id}),
                   success: function (data) {
   
                       if (data.status == 1) {
   
                           alert(data.msg)
                           _this.parents('li').remove()
                       }
                   }
               })
           }
       })
   })
</script>
{
   % endblock %}

后端接收数据,并执行数据库删除

from flask import render_template, request, flash, redirect, json, jsonify

# 删除相册
@project_blue.route('/admin/project/del_gallery', methods=['DELETE'])
def del_gallery():
    data = json.loads(request.get_data())
    obj = Gallery.query.filter_by(id=data['id']).first()
    db.session.delete(obj)
    db.session.commit()
    return jsonify(status=1, msg='删除成功')

时间格式化

刷新所有项目首页,你会发现创建时间显示的有点难看了,这时我们需要对时间进行格式化处理。

app/__init__.py 中,添加带注释的代码:

.
.
.
def create_app(config_name):
    app.config.from_object(config[config_name])

    db.init_app(app)
    Session(app)

    # 定义时间日期格式化
    @app.template_filter('strftime')
    def _jinja2_filter_datetime(date, fmt=None):
        if fmt is None:
            fmt = '%Y年%m月%d日'
        return date.strftime(fmt)
.
.
.        

然后修改首页循环数据的代码:

<td>{
  { project.create_time|strftime }}</td>

如果 Windows 电脑有报错如下:

UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error

请修改 app/__init__.py 中的代码:

.
.
.
def create_app(config_name):
    app.config.from_object(config[config_name])

    db.init_app(app)
    Session(app)

    # 定义时间日期格式化
    @app.template_filter('strftime')
    def _jinja2_filter_datetime(date):
        return date.strftime('%Y{y}%m{m}%d{d}').format(y='年',m='月',d='日')
.
.
. 

搜索

准备搜索 form 表单

<form class="am-form am-form-horizontal">

    <div class="am-u-sm-12 am-u-md-4">
        <div class="am-form-group">
            <label for="title" class="am-u-sm-2 am-form-label">标题</label>
            <div class="am-u-sm-10">
                <input type="text" name="keyword" placeholder="请输入标题" value="">
            </div>
        </div><
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值