отправьте запрос и URL не работает в проекте google app engine django - PullRequest
0 голосов
/ 22 апреля 2020

Я размещаю свое приложение для ведения блогов на движке приложений Google в стандартной среде. сайт успешно разворачивается. но когда я пытаюсь go перейти на любой другой URL-адрес, например anirudhmalik.in, на anirudhmalik / blog / list /, он показывает ошибку 500 на стороне сервера, на которой я использую экземпляр PostgreSQL, а в журнале появляется сообщение только об ошибке projects/anirudhmalik-274008/logs/appengine.googleapis.com%2Frequest_log"

, но я не мог получить подсказку из этого сообщения, и ни один из почтовых запросов не работает на веб-сайте, и все работает нормально на локальном сервере или моей локальной машине, вы можете проверить веб-сайт на anirudhmalik. и вы также можете дать предположение, что Google App Engine хорош для размещения вашего Django проекта и другого дешевого хостинга типа студента колледжа, спасибо

main.py

from annyportfolio.wsgi import application
app=application

файл app.yaml

handlers:# This configures Google App Engine to serve the files in the app's static# directory.- - url: /static 
  static_dir: static-storage/

# This handler routes all requests not caught above to your main app. It is# required when static routes are defined, but can be omitted (along with# the entire handlers section) when there are no static files defined.
- url: /.* 
  secure: always redirect_http_response_code: 301 
  script: auto


env_variables: 
  DJANGO_SETTINGS_MODULE: annyportfolio.settings ```



I am coonecting to database by using the below code 
if os.getenv('GAE_APPLICATION', None):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>
    DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'HOST':'<instance address>',
        'NAME': '<server name >',
        'USER': '<server user>',
        'PASSWORD': '<password of user>',

    }
    }

1 Ответ

0 голосов
/ 23 апреля 2020

Я вижу в вашем коде некоторые проблемы, вам нужно поместить имя схемы (а не имя сервера) в свойство 'name' вашего словаря по умолчанию, а свойство 'host' должно следовать за Cloud SQL шаблон строки подключения, App Engine Standard не использует publi c IP для доступа к вашему PostgreSQL экземпляру

Например:


# Running on production App Engine, so connect to Google Cloud SQL using
# the unix socket at /cloudsql/<your-cloudsql-connection string>
DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'HOST':'/cloudsql/my-project:us-central1:my-sql-instance',
        'NAME': 'mydjangoschema',
        'USER': '<server user>',
        'PASSWORD': '<password of user>',

    }

Чтобы создать правильную строку хоста, пожалуйста, следуйте этому шаги

  1. Запустите команду gcloud sdk
gcloud sql instances describe [YOUR_INSTANCE_NAME]
В выводе обратите внимание на значение, показанное для [CONNECTION_NAME]. строка хоста должна следовать этому шаблону /cloudsql/[CONNECTION_NAME] в моем примере это /cloudsql/my-project:us-central1:my-sql-instance
...