Простое приложение Django, развернутое на Azure App Service, продолжает показывать ошибку приложения

введите описание изображения здесь После успешного развертывания приложения на Azure App Service оно продолжает выдавать ошибку, кто-нибудь сталкивался с подобным?

Я попробовал войти в него по ssh, чтобы убедиться, что мои файлы не повреждены, и они в порядке, ожидая индексную страницу по умолчанию, которую я создал для приложения

Я попытался развернуть приложение Django в Azure App Service.

Сначала установите django с помощью pip

pip install django

Создайте свой проект Django:

django-admin startproject yourprojectname
cd yourprojectname

Создайте виртуальную среду для приложения

py -m venv .venv
.venv\scripts\activate

Здесь вам нужно создать файл requirements.txt, в котором будут перечислены все зависимости, необходимые для проекта.

pip freeze > requirements.txt

Установите зависимости:

pip install -r requirements.txt

Запустите приложение :

python manage.py runserver

Убедитесь, что ваш wsgi.py правильно установил DJANGO_SETTINGS_MODULE в 'yourproject.settings', а также убедитесь, что структура вашего проекта последовательна. Убедитесь, что ваши пакеты актуальны.

manage.py

import os
import sys

def main():

    settings_module = 'project.production' if 'WEBSITE_HOSTNAME' in os.environ else 'project.settings'
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings_module)

    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

if __name__ == '__main__':
    main()

Вот содержимое моего файла settings.py



import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = 'secretkey'

DEBUG = True

ALLOWED_HOSTS = [

INSTALLED_APPS = [
    "whitenoise.runserver_nostatic",
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello_azure',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    # Add whitenoise middleware after the security middleware
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'project.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'project.wsgi.application'


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}



AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True


STATICFILES_DIRS = (str(BASE_DIR.joinpath('static')),)
STATIC_URL = 'static/'

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')


DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

Локальный выход :

enter image description here

enter image description here

Я развернул приложение Django в Azure App Service с помощью расширения VS Code Azure Extension.

Вот шаги:

  1. Выберите свою подписку Azure.

  2. Затем выберите созданное веб-приложение.

  3. Щелкните правой кнопкой мыши на веб-приложении; вы увидите опцию "Развернуть в веб-приложение".

enter image description here

enter image description here

Развертывание в службе приложений azure прошло успешно.

Чтобы просмотреть веб-сайт в браузере, щелкните правой кнопкой мыши службу приложений Azure и выберите Browse Site.

enter image description here

Для проверки развернутых файлов в azure

1.Откройте службу приложений Azure.

  1. Найдите Advanced Tools и нажмите на него.

  2. После этого нажмите на кнопку Go.

enter image description here

enter image description here

4.Внутри папки wwwroot сайта вы можете найти развернутые файлы.

enter image description here

Вот вывод:

enter image description here

Мне удалось разобраться с этим, для команды start gunicorn я писал gunicorn --bind=0.0.0.0 --timeout 600 --chdir /mysite mysite.wsgi вместо gunicorn --bind=0.0.0.0 --timeout 600 --chdir ./mysite mysite.wsgi

Один '.' может изменить все lol, большое спасибо всем за помощь

Вернуться на верх