Хорошо для тех, кто достаточно ленив, как я, вот код
from dash import Dash
from werkzeug.wsgi import DispatcherMiddleware
import flask
from werkzeug.serving import run_simple
import dash_html_components as html
server = flask.Flask(__name__)
dash_app1 = Dash(__name__, server = server, url_base_pathname='/dashboard' )
dash_app2 = Dash(__name__, server = server, url_base_pathname='/reports')
dash_app1.layout = html.Div([html.H1('Hi there, I am app1 for dashboards')])
dash_app2.layout = html.Div([html.H1('Hi there, I am app2 for reports')])
@server.route('/')
@server.route('/hello')
def hello():
return 'hello world!'
@server.route('/dashboard')
def render_dashboard():
return flask.redirect('/dash1')
@server.route('/reports')
def render_reports():
return flask.redirect('/dash2')
app = DispatcherMiddleware(server, {
'/dash1': dash_app1.server,
'/dash2': dash_app2.server
})
run_simple('0.0.0.0', 8080, app, use_reloader=True, use_debugger=True)
ex.strerror
? Я не могу найти какой-либо существенный удар для этого в документах Python. Разве это не должно быть str(ex)
?
– Henrik Heimbuerger
5 February 2013 в 10:11
IOError
получен из EnvironmentError
, @hheimbuerger, который предоставляет атрибуты errorno
и strerror
.
– Don Kirkby
5 February 2013 в 21:06
Error
, например. ValueError, в RuntimeError
, поймав Exception
? Если я воспроизведу ваш ответ для этого случая, стек будет потерян.
– Karl Richter
18 April 2014 в 20:20
raise ... from ...
- действительно правильный способ сделать это в Python 3. Это требует большего количества оборотов.
– Nakedible
26 April 2013 в 17:30
Nakedible
Я думаю, что это потому, что, к сожалению, большинство людей все еще не используют Python 3.
– Tim Ludwinski
24 December 2013 в 20:24
future
для достижения этого: python-future.org/compatible_idioms.html#raising-exceptions Например. from future.utils import raise_
и raise_(ValueError, None, sys.exc_info()[2])
.
– jtpereyda
18 February 2016 в 02:41
raise MyException(str(e)), ...
и т. д. – Glenn Maynard 31 August 2009 в 03:52raise E() from tb
и.with_traceback(...)
– Dima Tisnek 30 May 2014 в 10:02raise
- это значение для перехода к исключению (в случае, если первым аргументом является класс исключения, а не экземпляр). Поэтому, если вы хотите заменить исключения, вместо выполненияraise MyException(str(e)), None, sys.exc_info()[2]
, лучше использовать это:raise MyException, e.args, sys.exc_info()[2]
. – bgusach 20 February 2015 в 09:19from future.utils import raise_
иraise_(ValueError, None, sys.exc_info()[2])
. – jtpereyda 18 February 2016 в 02:42