我想更改运行我的应用程序的主机和端口.我设置host
并port
进入app.run
,但flask run
命令仍然在默认情况下运行127.0.0.1:8000
.如何更改flask
命令使用的主机和端口?
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3000)
Run Code Online (Sandbox Code Playgroud)
set FLASK_APP=onlinegame
set FLASK_DEBUG=true
python -m flask run
Run Code Online (Sandbox Code Playgroud) 我在PyCharm社区版中安装了烧瓶插件,我在烧瓶应用程序中只有这个简单的代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello!</h1>'
if __name__ == "__main__":
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我得到这个消息:
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead
* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
* Running on http://127.0.0.1:5000/
Run Code Online (Sandbox Code Playgroud)
当我来到http://127.0.0.1:5000时,它说:"在服务器上找不到请求的URL.如果你手动输入了URL,请检查你的拼写,然后再试一次."
我想检查变量是否具有多个值之一.我很困惑为什么or
在这种情况下不起作用.我正在按照给出该示例的教程if (a or b):
,但是当我尝试这样做时,它只检查变量与第一个值.我的支票有什么问题?
name = raw_input('Please type in your name:')
if len(name) < 5:
print "Your name has fewer than 5 characters"
elif len(name) == 5:
print "Your name has exactly 5 characters"
if name == ("Jesse" or "jesse"):
print "Hey Jesse!"
else:
print "Your name has greater than 5 characters"
Run Code Online (Sandbox Code Playgroud) 我试图按照这个例子在一个使用Python Enum
类型的表中有一个枚举列.我定义了枚举,然后将其传递给列,如示例所示,但我明白了ValueError: <enum 'FruitType'> is not a valid Enum
.如何使用Python枚举正确定义SQLAlchemy枚举列?
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import enum
app = Flask(__name__)
db = SQLAlchemy(app)
class FruitType(enum.Enum):
APPLE = "Crunchy apple"
BANANA = "Sweet banana"
class MyTable(db.Model):
id = db.Column(db.Integer, primary_key = True)
fruit_type = db.Column(enum.Enum(FruitType))
Run Code Online (Sandbox Code Playgroud)
File "why.py", line 32, in <module>
class MyTable(db.Model):
File "why.py", line 34, in MyTable
fruit_type = db.Column(enum.Enum(FruitType))
File "/usr/lib/python2.7/dist-packages/enum/__init__.py", line 330, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python2.7/dist-packages/enum/__init__.py", line …
Run Code Online (Sandbox Code Playgroud) 使用会话时,Flask需要一个密钥.在我看过的每个例子中,秘密密钥以某种方式生成,然后存储在源代码或配置文件中.
永久存储它的原因是什么?为什么不在应用程序启动时简单地生成它?
app.secret_key = os.urandom(50)
Run Code Online (Sandbox Code Playgroud) 我最近更新了 Flask-SQLAlchemy,现在db.create_all
正在提高RuntimeError: working outside of application context
. 我怎么打电话create_all
?
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///project.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
db.create_all()
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
Traceback (most recent call last):
File "/home/david/Projects/flask-sqlalchemy/example.py", line 11, in <module>
db.create_all()
File "/home/david/Projects/flask-sqlalchemy/src/flask_sqlalchemy/extension.py", line 751, in create_all
self._call_for_binds(bind_key, "create_all")
File "/home/david/Projects/flask-sqlalchemy/src/flask_sqlalchemy/extension.py", line 722, in _call_for_binds
engine = self.engines[key]
File "/home/david/Projects/flask-sqlalchemy/src/flask_sqlalchemy/extension.py", line 583, in engines
app = current_app._get_current_object() # type: ignore[attr-defined] …
Run Code Online (Sandbox Code Playgroud) 我正在使用curl
我的网络应用程序的输出.当Flask和Jinja渲染模板时,输出中会有很多不必要的空白区域.它似乎是通过渲染Flask-WTF和Flask-Bootstrap的各种组件来添加的.我可以使用它sed
,但有没有办法从Jinja控制它?
http.Handle("/", http.FileServer(http.Dir("static")))
Run Code Online (Sandbox Code Playgroud)
html
在静态目录中提供文件.
Go中是否有任何方法可以指定html
要提供的文件?
喜欢render_template
的东西Flask
我想做的事情如下:
http.Handle("/hello", http.FileServer(http.Dir("static/hello.html")))
Run Code Online (Sandbox Code Playgroud)