Những câu trả lời khác có giải pháp chính xác nếu bạn thực sự muốn sử dụng params truy vấn. Một cái gì đó như:
@app.route('/createcm')
def createcm():
summary = request.args.get('summary', None)
change = request.args.get('change', None)
Một vài lưu ý. Nếu bạn chỉ cần hỗ trợ các yêu cầu GET, không cần bao gồm các phương thức trong trình trang trí tuyến đường của bạn.
Để giải thích thông số truy vấn. Mọi thứ vượt quá "?" trong ví dụ của bạn được gọi là tham số truy vấn. Flask sẽ lấy các tham số truy vấn đó ra khỏi URL và đặt chúng vào một ImmutableDict. Bạn có thể truy cập nó bằng request.args
, hoặc bằng khóa, tức là request.args['summary']
hoặc với phương thức nhận được mà tôi và một số người nhận xét khác đã đề cập. Điều này mang lại cho bạn khả năng bổ sung để cung cấp cho nó một giá trị mặc định (chẳng hạn như None), trong trường hợp nó không có mặt. Điều này là phổ biến cho các tham số truy vấn vì chúng thường là tùy chọn.
Bây giờ có một tùy chọn khác mà bạn dường như đang cố gắng thực hiện trong ví dụ của mình và đó là sử dụng Thông số đường dẫn.Điều này sẽ trông giống như:
@app.route('/createcm/<summary>/<change>')
def createcm(summary=None, change=None):
...
Url đây sẽ là: http://0.0.0.0:8888/createcm/VVV/Feauure
Với VVV và Feauure được thông qua vào chức năng của bạn như biến.
Hy vọng điều đó sẽ hữu ích.
Cái này sai.'yêu cầu' không được cung cấp cho foo() làm đối số. Kiểm tra xiaopengs câu trả lời cho đúng. – kramer65
Cần lưu ý rằng nhận xét ở trên không chính xác tại thời điểm viết, vì câu trả lời đã được chỉnh sửa. – Doormatt