V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feihuxiongdi
V2EX  ›  Flask

Flask 请求头格式问题

  •  
  •   feihuxiongdi · 2019-01-07 13:40:14 +08:00 · 4390 次点击
    这是一个创建于 1907 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用如下代码获取请求头中的数据,拿不到值(客户端也使用access_token

    access_token=request.header.get_all("access_token")
    

    使用如下代码获取请求头中的数据,可以拿到值(客户端也使用access-token

    access_token=request.header.get_all("access-token")
    

    Servlet.net Core 中都可以使用下划线格式的请求头名称,为什么 Flask 不可以,是需要额外配置吗?

    请问这是为什么?

    7 条回复    2019-01-10 18:25:02 +08:00
    loading
        1
    loading  
       2019-01-07 13:59:15 +08:00 via Android
    flask 是开源的,代码都有。底层是由 werkzeug 驱动。应该看这里。

    https://github.com/pallets/werkzeug/blob/master/werkzeug/http.py
    loading
        2
    loading  
       2019-01-07 14:02:14 +08:00 via Android
    下划线的是语法糖吧,没有很正常。
    iyaozhen
        3
    iyaozhen  
       2019-01-07 14:08:55 +08:00
    你是不是前面还有个 nginx ?需要把 underscores_in_headers 打开
    feihuxiongdi
        4
    feihuxiongdi  
    OP
       2019-01-07 15:02:52 +08:00
    @iyaozhen 有个 gunicorn
    feihuxiongdi
        5
    feihuxiongdi  
    OP
       2019-01-07 15:15:19 +08:00
    这里有类似的问题,并且有了 ngnix 的解决方法

    ```
    https://stackoverflow.com/questions/8011087/missing-custom-header-with-django-nginx-and-gunicorn#
    ```
    gnozix
        6
    gnozix  
       2019-01-07 16:48:09 +08:00
    把 header 中的所有东西打印出来看看不就知道了。
    feihuxiongdi
        7
    feihuxiongdi  
    OP
       2019-01-10 18:25:02 +08:00
    确实是 nginx 的问题,可怕的是我居然并不知道安装了 nginx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1022 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:57 · PVG 03:57 · LAX 12:57 · JFK 15:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.