html表单去掉问号和等式

2024-04-24 07:18:34 发布

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

我的代码是:

{% if request.path == '/employees' %}
    <form action="{{ url_for('employees_name', employee_id=x) }}" />
    EmployeeId: <input type="text" name=x><br>
    <input type="submit" value="Submit">
    </form>
{% endif %}

例如,当我输入“1”作为输出时,我得到:

^{pr2}$

但我需要这个:

http://127.0.0.1:5002/employees/1

下面是我的Python代码:

app = Flask(__name__)
api = Api(app)

class Employees_Name(Resource):
    def get(self, employee_id):
        conn = db_connect.connect()
        query = conn.execute("select * from employees where EmployeeId =%d "  %int(employee_id))
        result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
        return Response(render_template('test.html', result=result, mimetype='text/html')) 

api.add_resource(Employees, '/employees')

有办法吗?谢谢


Tags: 代码textnameformapiidappfor
1条回答
网友
1楼 · 发布于 2024-04-24 07:18:34

当使用'GET'处理表单时,表单数据将被格式化为附加在URL后面的查询字符串。通常的方法是使用POST端点来处理表单并验证表单数据,然后重定向到与您类似的GET端点。

所以,代码可能是这样的:

from flask import request, url_for, redirect
...

class Employees(Resource):
    def post(self):
        employee_id = request.form.get('employee_id')
        # validate...
        return redirect(url_for('employee', employee_id=employhee_id)) 

class Employee(Resource):
    def get(self, employee_id):
        conn = db_connect.connect()
        ... 

api.add_resource(Employees, '/employees')
api.add_resource(Employee, '/employees/<int:employee_id>')  # this rule is waht you want

在模板中:

^{pr2}$

相关问题 更多 >