接收数据后如何重新加载基于Flask的网页

问题描述 投票:0回答:2

我有一个简单的Web项目,该项目从中获取数据,对其进行处理,并且需要在页面上输出结果。蜘蛛工作后,数据将被写入sqlite,但不会显示在页面上。在sqlite中写入数据后如何刷新页面?

按钮

<button id="scrape" class="btn btn-success mr-2">Scrape</button>

js

$.post('/wellness', {'specialty': specialty, 'state': state, 'city': city}, (res) => { 
});

烧瓶

@app.route('/<page_id>', methods=['GET', 'POST'])
def page(page_id):
file_html = f"{page_id}.html"
file_py = f"{page_id}.py"
file_db = f"{page_id}.db"

specialty = request.form.getlist('specialty[]')
state = request.form.getlist('state[]')
city = request.form.getlist('city[]')

settings = ''
with open('settings.json', 'r') as f:
    for line in f.read():
        settings += line

settings = json.loads(settings)
settings['specialty'] = specialty
settings['state'] = state
settings['city'] = city

with open('settings.json', 'w') as f:
    f.write(json.dumps(settings, indent=4))

process = subprocess.Popen('python e:/Python/sqlite/spiders/' + file_py, shell=True)
process.wait()

try:
    db = sqlite3.connect(file_db)  
    cursor = db.cursor()

    cursor.execute('SELECT * FROM wellness ORDER BY id DESC')
    cards = cursor.fetchall()

    db.close()
    return render_template(file_html, cards = cards)
except:
    return render_template(file_html)
javascript python jquery flask
2个回答
0
投票

将适当的追加/填充HTML代码写入要显示的div

(res) => {
 # Write append or fill here 
});

示例

$.ajax({
    url: "/update/",
    type: "POST",
    data: {"data": data},
    success: function(resp){
        $('div.stats').html(resp.data); # Filling the data in appropriate div
    }
});

您将不得不为用例做类似的事情。


0
投票

解决方案:

$.post('/wellness', {'specialty': specialty, 'state': state, 'city': city}, (res) => { 
  $(location).attr('href', 'http://127.0.0.1:5000/wellness')
});
© www.soinside.com 2019 - 2024. All rights reserved.