用户manager.py runserver我的烧瓶webframework可以从http://127.0.0.1:5000开始,但它无法在网络中的其他计算机上访问.所以我需要在网络中使用开放的IP.虽然我使用bellow命令:
manage.py runserver 192.168.49.25:8000
Run Code Online (Sandbox Code Playgroud)
它无法运行并提供错误信息:
manage.py: error: unrecognized arguments: 192.168.49.25:8000
Run Code Online (Sandbox Code Playgroud)
我不知道它有什么问题?
我想要一个布尔标志和一个选项,我的命令有 n 个参数。所需的示例用法:
python manage.py my_command --all # Execute my_command with all id's
python manage.py my_command --ids id1 id2 id3 ... # Execute my_command with n ids
python manage.py my_command --all --ids id1 id2 id3 ... # Throw an error
Run Code Online (Sandbox Code Playgroud)
我的函数现在看起来像这样(如果两者都提供,函数体也有抛出错误的逻辑):
@my_command_manager.option("--all", dest="all_ids", default=False, help="Execute for all ids.")
@my_command_manager.option("--ids", dest="ids", nargs="*", help="The ids to execute.")
def my_command(ids, all_ids=False): #do stuff
Run Code Online (Sandbox Code Playgroud)
此作品为--ids选项,但--all选项说:error: argument --all: expected one argument。
TLDR:我怎样才能同时拥有选项和命令?
我正在使用flask-script运行我的应用程序:
if __name__ == "__main__":
manager.run()
Run Code Online (Sandbox Code Playgroud)
在泊坞窗中,我有以下内容:
CMD [ "python", "manage.py", "runserver", "-h", "0.0.0.0", "-p", "5000"]
Run Code Online (Sandbox Code Playgroud)
现在,当我构建并运行容器时,应用程序运行良好。但是,即使我的环境设置了DEBUG = True变量,如果我更改代码并保存应用程序也不会重新启动。我在这里想念什么吗?
Dockerfile:
FROM python:3.4-slim
RUN apt-get update -y && \
apt-get install -y \
python-pip \
python-dev \
pkg-config \
libpq-dev \
libfreetype6-dev
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
CMD [ "python", "manage.py", "runserver"]
Run Code Online (Sandbox Code Playgroud) 我使用这些行来启动我的应用程序:
from app import app
app.run(host='0.0.0.0', port=8080, debug=True)
Run Code Online (Sandbox Code Playgroud)
使用Flask-Migrate,我改为:
from app import manager
manager.run()
Run Code Online (Sandbox Code Playgroud)
manager.run不会采用相同的参数app.run,如何定义主机和端口?