Развертывание бэкенда Django REST API на AZURE

Я пытался решить, как развернуть проект Django на Azure, следовал многим руководствам, но в данный момент я не могу указать, в чем проблема.

Развертывание с GitHub, развертывание прошло успешно, но я не могу получить доступ к своему приложению, в основном я получаю 404 или ошибку приложения при запуске через браузер. У меня есть локально перенесенная postgre, но я хочу использовать Azure postgre DB.

После того, как я побаловался с переменными ENV, я не могу подключиться к SHH, чтобы применить миграции, CONN CLOSE... и т.д. Так что я понятия не имею, с чего теперь начинать?

Я пробовал

руководства Microsoft, руководства из Интернета, просил помощи у ChatGPT. Я хочу развернуть свое приложение Django на Azure, но не знаю, как это сделать.

Я попробовал ваш код и столкнулся с той же проблемой. Я нашел эту ссылку, которая объясняет, как развернуть и создать REST API с помощью Django REST Framework.

После настройки бэкенда REST API с помощью следующей команды:

django-admin startproject ProjectName
cd ProjectName
django-admin startapp ProjectName_api

Я сделал следующие изменения в todo/settings.py и обратился к коду из приведенной выше ссылки .

ALLOWED_HOSTS = ["*"]

Удалите CORS_ALLOWED_ORIGINS и CSRF_TRUSTED_ORIGINS в файле settings.py .

Затем добавьте 'rest_framework' и ваше приложение ('APIName_api') в раздел INSTALLED_APPS в todo/settings.py:

INSTALLED_APPS = [

    'rest_framework',
    'todo_api',
]

Далее создайте модель для списка дел в api/models.py и определите сериализатор для преобразования Todo модели в формат JSON в api/serializers.py.

Определите представления API для списка, создания, обновления и удаления дел в api/views.py. Затем определите шаблоны URL для конечных точек API в api/urls.py:

urlpatterns = [
    path('api/', TodoListApiView.as_view()),
    path('api/<int:todo_id>/', TodoDetailApiView.as_view()),
]

Затем включите URL _api в основной проект, отредактировав ProjectName/urls.py:

urlpatterns = [ path('admin/', admin.site.urls), path('Url/', include('ProjectName_api.urls')), ]

Я следовал этой ссылке для интеграции Azure PostgreSQL DB с Django. Сначала создайте экземпляр Azure PostgreSQL, а строка подключения для базы данных Azure PostgreSQL будет иметь следующий формат:

dbname=<db_name> host=<db_host> port=5432 user=<db_user> password=<db_password>

Добавьте следующее в settings.py и обновите указанные ниже параметры:

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get('DBNAME'),
        'HOST': os.environ.get('DBHOST'),
        'USER': os.environ.get('DBUSER'),
        'PASSWORD': os.environ.get('DBPASS'),
        'OPTIONS': {'sslmode': 'require'},
    }
}

Перенесите базу данных, создайте суперпользователя и запустите сервер локально для тестирования. После этого выложите код на Git.Вы можете протестировать свой API на todos/api.

Создайте веб с включенным GitHub Actions, настроив непрерывное развертывание и базовую аутентификацию. Обязательно добавьте параметры PostgreSQL в переменные среды azure web app.

Обновите ваш .yml файл следующим образом:

     - name: Run Django makemigrations and migrate
        run: |
          source venv/bin/activate
          python manage.py makemigrations
          python manage.py migrate
        env:
          DBNAME: postgres
          DBHOST: AzureHost
          DBUSER: postgres
          DBPASS: postgres

      - name: Create Django superuser
        run: |
          source venv/bin/activate
          python manage.py createsuperuser --noinput --username admin1 --email admin@example.com
        env:
          DBNAME: postgres
          DBHOST: AzureHost
          DBUSER: postgres
          DBPASS: postgres

Вывод:

enter image description here

enter image description here

Наконец-то мне удалось развернуть DRF (Django Rest Framework) в azure с базой данных SQL-сервера. Следуя этому руководству от MS. .

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