相关疑难解决方法(0)

模板文件更改时重新加载Flask应用程序

默认情况下,使用内置服务器(Flask.run)运行Flask应用程序时,它会监视其Python文件,并在代码更改时自动重新加载应用程序:

* Detected change in '/home/xion/hello-world/app.py', reloading
* Restarting with reloader
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎仅适用于*.py文件,我似乎没有找到任何方法将此功能扩展到其他文件.最值得注意的是,当模板更改时让Flask重新启动应用程序非常有用.我已经不知道有多少次我在模板中摆弄标记并且因为没有看到任何变化而感到困惑,只是发现应用程序仍在使用旧版本的Jinja模板.

那么,有没有办法让Flask监控文件存在于模板目录中,还是需要深入到框架的源代码?

编辑:我正在使用Ubuntu 10.10.没有在任何其他平台上尝试过.


在进一步查询之后,我发现模板中的更改确实实时更新,而无需重新加载应用程序本身.但是,这似乎只适用于传递给的那些模板flask.render_template.

但实际上,在我的应用程序中,我有很多可重复使用的参数化组件,我在Jinja模板中使用它们.它们被实现为{% macro %}s,驻留在专用的"模块"中并被{% import %}编入实际页面.所有不错和DRY ...除了那些导入的模板显然从未检查过修改,因为它们根本没有通过render_template.

(奇怪的是,对于通过调用的模板,这不会发生{% extends %}.至于{% include %},我不知道,因为我没有真正使用它们.)

总而言之,这种现象的根源似乎介于Jinja和Flask或Werkzeug之间.我想这可能需要为这些项目之一的bug追踪者旅行:)同时,我接受了jd.的回答是因为这是我实际使用的解决方案 - 而且它就像一个魅力.

python jinja2 flask

78
推荐指数
8
解决办法
6万
查看次数

什么"app.run(host ='0.0.0.0')"在Flask中意味着什么

我正在阅读Flask文档.有人告诉我app.run(host='0.0.0.0'),我可以公开服务器.

这是什么意思 ?如何在另一台计算机(仅localhost:5000在我自己的计算机中)访问服务器?

python tcp flask web server

29
推荐指数
1
解决办法
7万
查看次数

Flutter 移动应用程序中的 Python 和 Dart 集成

我可以做这两件事吗:

  1. dart 中是否有用于情感分析的库?
  2. 我可以在 dart 中使用 Python(用于情绪分析)吗?

我回答这些问题的主要动机是我正在处理一个应用程序,并且我使用了情感分析,但我不知道我是如何做到这一点的。

谁能帮我解决这个问题。?
或者有什么方法可以在flutter应用程序中进行文本情感分析?

python dart python-requests dart-pub flutter

14
推荐指数
3
解决办法
3万
查看次数

Heroku/gunicorn/flask应用程序说"正在使用连接"

我有一个在本地运行良好的Flask应用程序,但是当我推送到Heroku时,我收到错误消息:

* Running on http://127.0.0.1:5000/
[INFO] Starting gunicorn 18.0
[ERROR] Connection in use: ('0.0.0.0', 8163)
Run Code Online (Sandbox Code Playgroud)

我在这个问题上尝试了解决方案,其中gunicorn和werkzeug正在互相争斗,但是__name__ == "__main__"在我的主应用程序文件(run.py)中添加一个 块并没有解决我的错误.

这篇SO帖子建议确保我的流程全部清理完毕.我这样做但它仍然无法正常工作,所以我实际上删除了我的整个heroku应用程序并进行了修复,它仍然给出了同样的错误.

我的run.py文件看起来像:

#!pl_env/bin/python
from app import app

if __name__ == "__main__":
  app.run(debug=True, port=33507)

# [33507 is the Flask port on Heroku]
Run Code Online (Sandbox Code Playgroud)

我的Procfile是:web:gunicorn run:app

__init__.py应用程序中的文件是:

from flask import Flask
import os
from flask.ext.login import LoginManager

app = Flask(__name__)
app.config.from_object('config')

lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'

from app import views …
Run Code Online (Sandbox Code Playgroud)

python heroku flask gunicorn

6
推荐指数
1
解决办法
1661
查看次数

如何通过公共IP接口配置烧瓶?

一旦我在flask中设置SERVER_NAME或host属性,我无法通过其url在外部解析任何方法.以下是我的app init配置:

flask_sqlalchemy import SQLAlchemy
from flask.ext.cors import CORS
__authors__ = 'DarkStar1'

from flask import Flask

app = Flask(__name__)
app.config.from_object('config')
app.config['DEBUG'] = True
app.config['SERVER_NAME'] = '0.0.0.0'
#app.run(host='0.0.0.0')
CORS(app)

db = SQLAlchemy(app)

from oms import user_service, person_service
Run Code Online (Sandbox Code Playgroud)

我可以设置DEBUG参数/属性,但尝试设置主机或SERVER_NAME会导致所有网址,例如http:// <hostname>:5000/test,结果为404.由于服务器是一个远程开发服务器,我能够通过localhost在所有url上的隧道中获取200秒.端口已启用,我正在使用的烧瓶版本在python 2.7.6上为0.10.1.我搜索和阅读文档无济于事.

python configuration flask devserver

5
推荐指数
1
解决办法
6677
查看次数

AWS 连接在端口 8080 上被拒绝

我有一个 EC2 实例,在端口 8080 上运行 Flask 服务器。

* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)

我可以运行curl并从我的 EC2 实例获取响应。

$ curl -X GET '0.0.0.0:8080/fbeac'
Run Code Online (Sandbox Code Playgroud)

但是,我无法使用公共 IP/DNS 来获取响应并运行

$ curl -X GET '3.135.62.118:8080/fbeac'
Run Code Online (Sandbox Code Playgroud)

结果是curl: (7) Failed to connect to 3.135.62.118 port 8080: Connection refusedcurl当我尝试使用本地计算机时,我遇到了同样的错误。

我的应用程序正在侦听端口 8080,我通过运行来检查该端口netstat

$ netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
Run Code Online (Sandbox Code Playgroud)

此外,我已确保安全组设置正确。我仅尝试了自定义 TCP 端口 8080、所有 TCP 端口和(当前)所有流量。我还在旁边打开了 HTTP/HTTPS 端口以防万一,但没有成功。

这让我相信这可能是防火墙问题,但我使用的是 Amazon Linux 计算机,默认策略似乎是ACCEPT,我通过运行进行了检查iptables。 …

curl amazon-web-services flask

5
推荐指数
1
解决办法
5853
查看次数

Web进程在启动后60秒内无法绑定到$ PORT

有人可以在Heroku上向我解释这条错误消息吗?应用程序在本地工作正常,但从未在网上成功

heroku[slug-compiler]: Slug compilation started
heroku[slug-compiler]: Slug compilation finished
heroku[web.1]: State changed from crashed to starting
heroku[web.1]: Starting process with command `python app.py ${PORT}`
app[web.1]:  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Run Code Online (Sandbox Code Playgroud)

该应用程序本身并不复杂

from flask import Flask, render_template
app = Flask(__name__, static_folder='static') 

@app.route('/')
def hello_world():
    return render_template('index.html')

if __name__ == '__main__':
    from os import environ
    app.run(debug=False, port=environ.get("PORT", 5000))
Run Code Online (Sandbox Code Playgroud)

python heroku flask

4
推荐指数
1
解决办法
4627
查看次数

如何获取所有可用的命令选项来设置环境变量?

关于设置命令选项烧瓶手册只讲了设置FLASK_RUN_PORT可以通过Click加载的环境变量的命令。

我如何找到其他选项并将它们与模式一起使用FLASK_COMMAND_OPTION

我想将它设置为我的 vscode launch.json。

python flask

4
推荐指数
1
解决办法
2456
查看次数

从不同设备访问 Flask

有没有办法生成特定的IP地址或创建在本地运行的flask http://127.0.0.1:5000/站点的特定站点,以从不同的设备访问使用flask制作的网络应用程序,因为默认情况下它在本地运行并在http://127.0.0.1:5000/下但是,我想从不同的设备访问它。如果,有办法请帮忙

html web-applications flask

4
推荐指数
1
解决办法
4555
查看次数

如何从移动设备访问 Flask Web 服务器?

我的 Mac @ 上运行着 FLask Web 开发服务器127.0.0.1:5000/。我的 mac 和我的 android 设备都连接到同一个 WLAN。我无法通过在192.168.8.103:5000我的 android 设备的浏览器中输入我的 mac( )的 IP 地址来访问我的 Flask 网站。但是我可以通过进入192.168.8.103我的 android 设备的浏览器从我的 Mac 上运行的 apache 服务器访问网页。我可以从我的手机访问 Flask 网络服务器吗?

flask python-3.x web

2
推荐指数
1
解决办法
2144
查看次数

如何在自己的域中运行 Flask

我有一个带有域的服务器,例如https://my.site.com。但是当我启动 Flask 时,连接时域不起作用。有什么问题?

代码:

from flask import Flask, jsonify
import os

ASSETS_DIR = os.path.dirname(os.path.abspath(__file__))
app = Flask(__name__)

@app.route('/')
def index():
    return 'Flask is running!'

if __name__ == '__main__':
    context = ('server.crt', 'server.key')
    app.run(debug=True, ssl_context=context, port=3030)
Run Code Online (Sandbox Code Playgroud)

并记录:

 * Running on https://127.0.0.1:3030/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 284-971-705
Run Code Online (Sandbox Code Playgroud)

我在浏览器中连接到https://my.site.com:3030,并且具有“永久加载”

python flask server

2
推荐指数
1
解决办法
1万
查看次数

如何将烧瓶端口从容器发布到主机

我想在本地运行一个 dockerized Flask 服务器并访问我在其中定义的任何路由。设置重现我的问题:

应用程序

from flask import Flask

app = Flask(__name__)

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

Run Code Online (Sandbox Code Playgroud)

文件

from python:3.7-alpine

COPY app.py app.py

RUN pip install flask

CMD [ "flask", "run" ]
Run Code Online (Sandbox Code Playgroud)

构建这个容器工作正常。按照文档一些深入的示例,运行它docker run -p 5000:5000 flask应该可以解决问题。它启动容器并且看起来不错:

* Environment: production   
  WARNING: Do not use the development server in a production environment.  
  Use a production WSGI server instead.  
* Debug mode: off  
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)

docker ps让我发现,端口映射也似乎工作: …

python flask docker alpine-linux

0
推荐指数
1
解决办法
2495
查看次数

无法从远程计算机访问Python Flask应用程序

大家好我是Python Flask的新手。阅读完基本手册后,我尝试创建一个示例Flask应用程序,并在我的机器上成功完成了该工作。

我的代码(取自各种教程)如下:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def main():
    return "Welcome!"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

如您所知,此应用程序将打印“ Welcome!”。每当我点击http://127.0.0.1:5000/。但是,当我尝试通过使用系统的IP地址替换127.0.0.1从同一网络中的其他计算机访问应用程序时,出现“网络错误(tcp_error)连接被拒绝”错误

关于如何从另一台计算机访问Flask应用程序(在一台计算机上创建)的任何输入都将有所帮助

flask python-3.x flask-restful

-2
推荐指数
1
解决办法
3651
查看次数