使用Python/Flask/SQLi将jQuery ui可排序保存到数据库

2024-09-28 21:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个拖放效果,只需要找到jQuery可排序的最可行和最简单的解决方案,但我想保存重新排序后的位置。使用php/sqlite我可以做到这一点,但由于我使用的是frameworkflask,所以解决方案必须是python。我来这里搜索代码

html格式:

$(function() {
    var $sortables = $("#sortMe").sortable({
        stop: function() {
            var sortedItems = $sortables.sortable("toArray");
        }
    });
});

生产日期:

^{pr2}$

编辑。在

现在,我知道了

html格式:

    $(function() {
        $('#sortMe').sortable({
            update: function(event, ui) {
                var postData = $(this).sortable('serialize');
                console.log(postData);

                $.ajax({
                    url: '/saveorder',
                    type: 'POST',
                    contentType: 'application/json',
                    dataType: 'json',
                    data: JSON.stringify({list: postData}),
                    success: function (ret) {
                        alert('JSON posted: ' + JSON.stringify(ret));
                    }
                });
            }
        });
    });

生产日期:

@app.route("/saveorder", methods=['GET', 'POST'])
def saveorder():
    json = request.json
    print(json)

    return jsonify(json)

Tags: json排序varhtml格式function解决方案post
1条回答
网友
1楼 · 发布于 2024-09-28 21:24:38

我找到了解决办法

https://github.com/h01000110/sortable-flask

在应用程序副本在

from flask import Flask, render_template, request, jsonify
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)


class Sortable(db.Model):
    __tablename__ = 'sortables'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    data = db.Column(db.String)

    def __init__(self, data):
        self.data = data


db.create_all()


@app.route('/')
def index():
    sort = Sortable.query.filter_by(id=1).first()
    ordem = str(sort.data)
    return render_template('index.html', sort=sort, ordem=ordem)


@app.route('/post', methods=['GET', 'POST'])
def post():
    json = request.json
    x = json.replace('item[]=', ',')
    y = x.replace('&,', '')
    final = y.replace(',', '')

    sort = Sortable.query.filter_by(id=1).first()
    sort.data = final

    db.session.commit()

    return jsonify(final)


if __name__ == '__main__':
    app.run(debug=True)

在索引.html在

^{pr2}$

相关问题 更多 >