Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶-为什么我在服务器应答中看到robots.txt?_Python_Flask - Fatal编程技术网

Python 烧瓶-为什么我在服务器应答中看到robots.txt?

Python 烧瓶-为什么我在服务器应答中看到robots.txt?,python,flask,Python,Flask,我在本地主机上运行了简单的Flask web应用程序(从命令“Flask run”开始) 此web应用程序可与从URL检测到的更多语言配合使用。 例如:“” 索引页上的URL必须为:“”,但如果使用此代码: @blueprint.route('/<string:lang_code>/') def home(lang_code): print('Show lang:', lang_code) 并且没有来自URL的lang代码。 为什么我看到这个输出?在URL中使用/检测语言代

我在本地主机上运行了简单的Flask web应用程序(从命令“Flask run”开始)

此web应用程序可与从URL检测到的更多语言配合使用。 例如:“”

索引页上的URL必须为:“”,但如果使用此代码:

@blueprint.route('/<string:lang_code>/')
def home(lang_code):
    print('Show lang:', lang_code)
并且没有来自URL的lang代码。 为什么我看到这个输出?在URL中使用/检测语言代码的最佳实践是什么?
感谢您的回答。

当您的服务器面向公众时(甚至在本地测试期间),您必须期望收到任意请求。对不符合URL模式的请求的明显响应是
404notfound
。这意味着您应该检查
lang\u code
是否是您支持的语言之一

该文件用于限制搜索引擎的访问权限。然而,不能保证搜索引擎遵守这些限制


您使用的方法是支持多种语言的常用技术。其他常见技术涉及URL参数,例如,
?lang=en
,或cookie。请注意,该浏览器还通过HTTP标题字段
Accept language
指示用户的语言首选项。如果缺少任何其他语言指示,这可以用于重定向到首选语言的页面版本。

感谢您的回答,但仍然无法理解为什么我没有看到lang代码,而是字符串“robots.txt”。在我看来,我的解决方案是基于,如果您请求
http://localhost:5000/en/
,您应该看到
Show lang:en
。然而,显然也有类似
http://localhost:5000/robots.txt
。Python/Flask将字符串
robots.txt
放入
lang\u code
并打印它。它不知道
lang\u code
应该是一种语言,也不知道
robots.txt
不是一种语言。
Show lang: robots.txt