【问题标题】:Displaying a form and saving the submited data显示表单并保存提交的数据
【发布时间】:2025-12-19 07:45:12
【问题描述】:

我有一个简单的应用程序,可以保存和显示数据库中的记录,

@user_endpoints.get("/user/<id>")
def get_user(request, id):
    dct = User.by_id(id)
    if not dct:
        return response.json({"Error": "Not Found"}, status=404)
    return response.json(dct.to_dict(), status=200)

在显示用户列表时,类似下面的代码就足够了,

@user_endpoints.get("/users")
def list_users(request):
    dct = User.all()
    template = template_env.get_template('user_list.html')
    content = template.render(title='User List', users=dct)
    return response.html(content)

上面使用 Jinja2 但这对我来说并不重要(这不是一个真正的应用程序)。我不清楚如何显示用于创建新用户和保存提交数据的表单,有人可以提供一个简单的例子吗?

【问题讨论】:

    标签: python-3.x sanic


    【解决方案1】:

    Sanic 没有“一种方法”可以做到这一点。 Sanic 不知道形式。这完全取决于您在前端做什么,如何编码数据。您是发送 JSON 还是“表单数据”编码?也许是完全不同的东西?

    您肯定会像上面那样使用“POST”而不是“GET”。您可以检查request 并找到从前端发送的数据,然后对其进行操作。 (虽然现在你会从设计和实现适当的(REST)API 开始——通常基于 JSON——然后使用它。这里没有出现“表单”这个词。它只是数据。)

    【讨论】:

    • 理想情况下,我会在这些练习中尽量避免使用 javescript。因此,从设计的角度来看,我更感兴趣的是单独使用 Python 和模板。
    • 这不会改变我的答案。您从前端获取数据(与 Sanic 没有任何关系)。查看request 变量的外观,当您发布表单时,将其放入您的用户对象中,然后将其保存到您的数据库中。
    【解决方案2】:
    最近更新 更多