通过 Javascript 访问 SQLite 数据?

Accessing SQLite data through Javascript?

例如,如果我有这个代码:

<form action="{{ url_for('user.new_domain') }}" class="form" role="form" method="post" action="" autocomplete="off">
    {{ form.csrf_token }}
    <p>{{ form.name(placeholder="name", onkeyup="timing()") }}
      <span class="error">
      {% if form.name.errors %}
        {% for error in form.name.errors %}
          {{ error }}
        {% endfor %}
      {% endif %}
    </span>
    </p>
</form>

timing() 是 javascript 文件中的一个函数,我在代码中的 <script> 标记中包含该文件。我希望 timing() 能够访问我的 sqlite 数据库信息并检查我的数据库中是否存在用户输入表单的任何内容。这甚至是正确的方法吗?通过javascript?我还应该如何 运行 javascript 依赖于 sqlite 数据的函数?任何帮助表示赞赏。谢谢!

简短的回答是可以,但在有限的浏览器上,请参阅 link 了解详细信息。 http://html5doctor.com/introducing-web-sql-databases/

长的答案是使用你的后端来访问这些可能是明智的(也许通过 API?)这是 Flask 的一个这样的例子(虽然我不确定你正在使用什么 https://flask-restless.readthedocs.org/en/latest/)

在您的应用中使用 Ajax to send a call to another route returns 字符串(普通字符串或 JSON,以更有用者为准)。 Ajax 调用然后使用它的 success 函数来解析该数据并根据需要对其进行操作。

因此,除了仅由 Flask 呈现的代码之外:

{% if form.name.errors %}
    {% for error in form.name.errors %}
        {{ error }}
    {% endfor %}
{% endif %}

你需要通过 JavaScript:

<script>
    function timing() {
        $.ajax({
            method: "POST",
            url: "some url",
            data: {
                key: "value"
            },
            success: function(data) {
                // do something
            }
        });
    }
</script>

您应用中的代码类似于(基于您的结果来自另一个实际执行查询的 Python 文件这一事实):

from that_other_file import the_querying_function

@app.route('/some_url', methods=['POST'])
def some_url():
    return the_querying_function(request.POST['key'])

这使用 HttpResponse.POST。将 key(在 JS 和 Python 中)替换为您要从表单中获取的内容。