Ответ зависит от того, как вы обслуживаете это приложение.
Предполагая, что вы собираетесь запускать это приложение внутри контейнера WSGI (mod_wsgi, uwsgi, gunicorn и т. д.); вам нужно на самом деле монтировать в этом префиксе приложение как часть этого контейнера WSGI (что-нибудь, что говорит WSGI) и установить настройку APPLICATION_ROOT
значение для вашего префикса:
app.config["APPLICATION_ROOT"] = "/abc/123"
@app.route("/")
def index():
return "The URL for this page is {}".format(url_for("index"))
# Will return "The URL for this page is /abc/123/"
Установка значения конфигурации APPLICATION_ROOT
просто ограничивает файл cookie сеанса флешки этим префиксом URL.
Если вы не знаете, что означает первый абзац, это означает, что все остальные будут автоматически обработаны для вас превосходными возможностями WSGI для Flask и Werkzeug. , посмотрите на это примерное приложение с Flask, смонтированным внутри него:
from flask import Flask, url_for
from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
app = Flask(__name__)
app.config['APPLICATION_ROOT'] = '/abc/123'
@app.route('/')
def index():
return 'The URL for this page is {}'.format(url_for('index'))
def simple(env, resp):
resp(b'200 OK', [(b'Content-Type', b'text/plain')])
return [b'Hello WSGI World']
app.wsgi_app = DispatcherMiddleware(simple, {'/abc/123': app.wsgi_app})
if __name__ == '__main__':
app.run('localhost', 5000)
Если, с другой стороны, вы будете запускать свою флягу приложение в корневом контейнере WSGI и запросы проксирования к нему (например, если это FastCGI'd, или если nginx является proxy_pass
-потребителями запросов для вспомогательной точки к вашему автономному uwsgi
/ gevent
, вы можете либо:
DispatcherMiddleware
из werkzeug
(или PrefixMiddleware
из ответа su27 ), чтобы подключить ваше приложение на автономном сервере WSGI, который вы используете. (См. Пример правильной подстройки вашего приложения выше для используемого кода.) $("#requestTypes")
возвращает объект jQuery, который содержит все выбранные элементы. Вы пытаетесь звонить add()
метод отдельного элемента, но вместо этого Вы звоните add()
метод объекта jQuery, который делает что-то совсем другое.
Для доступа к самому элементу DOM необходимо рассматривать объект jQuery как массив и вытащить первый объект из него, при помощи $("#requestTypes")[0]
.
Для материала как это я использую избранный плагин поля texotela с его простой функцией ajaxAddOption.
По умолчанию селекторы jQuery возвращают объект jQuery. Добавьте это для возвращения элемента DOM:
var dropdownList = $("#requestTypes")[0];