Я хочу создать собственное промежуточное ПО с django-soet - PullRequest
0 голосов
/ 21 мая 2019

Я хочу создать собственное промежуточное ПО в своем проекте.но я получаю такие ошибки:

[  django.core.exceptions.ImproperlyConfigured: WSGI application 'custommiddle.wsgi.application' could not be loaded; Error importing module. ]

Я думаю, что проблема может быть в моей версии на Python, я использую версию 3.7 .

Вот структура моей папки:

custommiddle/  # project name
  __init__.py
  settings.py
  urls.py
  wsgi.py
  cmiddle/  # app name
    middle/  # directory
      __init__.py
      middleware.py
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

middleware.py

from django.conf import settings

class StackOverflowMiddleware(object):
  def __init__(self, get_response):
      self.get_response = get_response

  def __call__(self, request):
      response = self.get_response(request)
      return response

  def process_exception(self, request, exception):
      if settings.DEBUG:
          print (exception.__class__.__name__)
          print (exception.message)
      return None

settings.py

INSTALLED_APPS = [ 'soet' ]
MIDDLEWARE_CLASSES = [  'soet.middleware.StackOverFlowMiddleware' ]

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

soet использует синтаксис python2.В Python 3 оператор print был заменен функцией print () .

Посмотрите на кодовую базу на https://github.com/vitorfs/soet/blob/master/soet/middleware.py, и вы можете изменитьэто к синтаксису python3 (в основном посмотрите только на оператор print).

Посетите django docs для создания промежуточного программного обеспечения по адресу: https://docs.djangoproject.com/en/2.2/topics/http/middleware/

0 голосов
/ 21 мая 2019

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

settings.py

import os

BASE_DIR = ...

SECRET_KEY = ...

DEBUG = ...

ALLOWED_HOSTS = ...

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'soet', # your apps
]


MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    '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',

    'soet.middleware.StackOverFlowMiddleware' # your_middleware
]

.
.
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...