#python #google-app-engine
#python #google-app-engine
Вопрос:
Мне нужна помощь с моим app.yaml
и управлением url. У меня есть скрипты ting.py
, searchandler.py
и toplawfirms.py
. Я создал ting.py
первый, и у меня есть в app.yaml
- url: /.*
script: ting.py
и все остальные страницы объявлены в ting.py
. Но я думаю, что я допустил ошибку с searchhandler.py
и toplawfirms.py
, не сделав их вторым уровнем. Есть ли теперь способ включить app.yaml
только три скрипта, чтобы мой app.yaml
выглядел как
...
- url: /???
script: searchhandler.py
- url: /???
script: toplawfirms.py
- url: /.*
script: ting.py
...
чтобы я мог объявлять все остальные страницы в их скриптах?
Это то, что у меня есть сейчас:
application: ting-1
version: 1
runtime: python
api_version: 1
handlers:
- url: /_ah/mail/.
script: incoming.py
login: admin
- url: /stylesheets
static_dir: stylesheets
- url: /favicon.ico
static_files: static/images/favicon.ico
upload: static/images/favicon.ico
- url: /image
script: toplawfirms.py
- url: /imageupload
script: toplawfirms.py
- url: /imagesave
script: toplawfirms.py
- url: /imageresize
script: toplawfirms.py
- url: /displayimage
script: toplawfirms.py
- url: /histogram
script: toplawfirms.py
- url: /testurlopen
script: toplawfirms.py
- url: /printdb
script: toplawfirms.py
- url: /cropimage
script: toplawfirms.py
- url: /jquerytest
script: toplawfirms.py
- url: /urlopenppp
script: toplawfirms.py
- url: /deleteone
script: toplawfirms.py
- url: /enterppp
script: toplawfirms.py
- url: /saveppp
script: toplawfirms.py
- url: /searchhandler
script: searchhandler.py
- url: /site
script: searchhandler.py
- url: /searchall
script: searchall.py
- url: /.*
script: ting.py
inbound_services:
- mail
Ответ №1:
Самый простой способ сделать это — создать одно приложение WSGI в ting.py
и добавить в него все обработчики для всех ваших URL-адресов. Затем удалите все, кроме /.*
сопоставления.
Комментарии:
1. Должен ли я удалить
def main(): run_wsgi_app(application) if __name__ == "__main__": main()
изsearchhandler.py
иtoplawfirms.py
и поместить все обработчики вting.py
ИЛИ удалитьsearchhandler.py
иtoplawfirms.py
и перенести весь код в них вting.py
и использовать толькоting.py
?2. Любой из них; какой вы предпочитаете, зависит от вашего приложения. В первом случае вам следует импортировать
searchhandler
иtoplawfirms
в ting.py чтобы ссылаться на их обработчики.
Ответ №2:
Я использую обработчики из разных модулей. Я просто помещаю это в конец everthing, а затем выше, я могу делать все остальное:
...
# All other URLs use main.app
- url: /.*
script: main.app
inbound_services:
- xmpp_message
- mail
builtins:
- datastore_admin: on
- remote_api: on
error_handlers:
- file: default_error.html
libraries:
- name: jinja2
version: latest
- name: setuptools
version: latest
- name: markupsafe
version: latest
- name: django
version: latest
- name: PIL
version: latest
- name: webob
version: latest