【问题标题】:Transfer client side data to server side in Flask在 Flask 中将客户端数据传输到服务器端
【发布时间】:2014-12-02 03:53:52
【问题描述】:

我正在尝试使用 Flask 构建网站。我对客户端知之甚少。我正在尝试构建一个 Jinja2 模板,该模板运行一个为我提供用户纬度和经度的脚本。问题是我有纬度和经度,但我不知道如何将数据从脚本传输回服务器端。

这是我的 base.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Welcome to Tumu's App</title>
</head>
<body>
<p>
Hello. Lets share between close peoples.
</p>
<script type="text/javascript">
navigator.geolocation.getCurrentPosition(function (position) {
        alert(position.coords.latitude + ',' + position.coords.longitude);
        }, function (error) {
        alert(error.code);
        }, {enableHighAccuracy: true, maximumAge: 0});
</script>"
<div>Share your location: <a href="/">Home</a></div>
<hr>
{% block content %}{% endblock %}
</body>
</html>

我的 test.html

{% extends "base.html" %}
{% block content %}
    <h1>Hi, {{ user.nickname }}!</h1>
    {% for post in posts %}
    <div><p>{{ post.author.nickname }} says: <b>{{ post.body }}</b></p></div>
    {% endfor %}
{% endblock %}

我的意见.py

from app import app
from app import methods
from flask import render_template

# default route
@app.route('/')
def default():
    return render_template('base.html')

# generic test
@app.route('/test')
def test():
    user = {'nickname': 'rmad'}  # fake user
    return render_template('test.html', title='Flask Home',user=user)

如何将脚本中的数据传输到views.py中的调用方法?

【问题讨论】:

    标签: javascript jquery python flask jinja2


    【解决方案1】:

    您需要一个从 AJAX 调用接收数据的新视图。像这样的东西应该可以工作:

    from flask import request
    
    @app.route('/location', methods=['POST'])
    def location():
        latitude = request.json.get('latitude')
        longitude = request.json.get('longitude')
    

    然后在客户端:

    $.ajax({
        type: 'POST',
        url: '/location',
        data: JSON.stringify({'latitude': latitude, 'longitude': longitude}, null, '\t'),
        contentType: 'application/json;charset=UTF-8'
    });
    

    【讨论】:

    • 谢谢,但不幸的是它没有成功。请检查我是否已正确应用更改 My base.html sn-p " 然后我将 /location 路由添加到 views.py。
    • 没用?什么没用?你遇到了什么错误?
    • 没有错误。我尝试打印纬度和经度。没有。我在views.py 中所做的是我添加了/location 路由,但我仍然使用默认路由来呈现base.html。我做错了吗?
    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多