尝试创建第一个烧瓶文件时出错

时间:2021-01-07 08:53:29

标签: python flask pip

我刚刚安装了 Python、pip 和 Flask。 然后我创建了一个测试文件(hello.py):

from flask import Flask
app = Flask(_name_)
@app.route('/')
def index():
   return 'Hello world!'
if __name__ == "__main__":
app.run()

当我尝试使用

运行文件时

>set FLASK_APP=hello.py

>flask run

我收到此错误

 Serving Flask app "hello.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "c:\users\ahmed\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\ahmed\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\ahmed\helloworld\env\Scripts\flask.exe\__main__.py", line 7, in <module>
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 967, in main
    cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 848, in run_command
    app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 305, in __init__
    self._load_unlocked()
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "c:\users\ahmed\helloworld\env\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\ahmed\helloworld\hello.py", line 2, in <module>
    app = Flask(_name_)
NameError: name '_name_' is not defined

1 个答案:

答案 0 :(得分:0)

钥匙在这里

File "C:\Users\ahmed\helloworld\hello.py", line 2, in <module>
    app = Flask(_name_)
NameError: name '_name_' is not defined

所以,改变

app = Flask(_name_)

app = Flask(__name__)

双下划线 的原因是它们在 Python 中具有特殊含义。请参阅 Underscore vs Double underscore with variables and methods What is the meaning of single and double underscore before an object name?

您发布的代码还有其他问题。例如,在最后一行中没有标识。此外,您的格式可以得到改进。放在一起,您的代码可能如下所示。

from flask import Flask


app = Flask(__name__)


@app.route('/')
def index():
   return 'Hello world!'


if __name__ == "__main__":
    app.run()