Как взаимодействовать между моим скриптом Python и моим представлением django (импорт, запрос)?
Я объясняю свою проблему как можно лучше:
У меня есть программа, написанная в 3 модулях. Я хочу сохранить некоторые данные с сайта (теперь я использую локальный хост для выполнения тестов) в некоторые переменные и таким образом показать значение некоторых переменных на индексной странице:
1. - [Script: Text_Variable] < - [localhost: ask_for_text]
2. - [Script: Menu_Options] --> [localhost: show_menu]
3. - [Script: Option_Variable] <-- [localhost: user_option]
4. - [Script: Response_Variable] --> [localhost: show_response]
В зависимости от значения "Text_Variable", программа делает: 1 --> 4 или 1 -- & gt; 2 --> 3 --> 4
Я мог бы импортировать из сценария в "views.py" без проблем функции и переменные, которые сделали процесс 1 --> 4 работать правильно, но у меня есть проблема с функцией " Menu_Options" :
Я использую метод "POST" для получения данных со страницы, поэтому мне нужно передать аргумент "request" моей функции в "views.py" но я вызываю эту функцию из скрипта, поэтому мне нужно импортировать этот "запрос" в модуль. Я пробовал с этими:
import newproject.views import django from django.http import request
script_module.py:
... Pregunta = 'question?' Opciones = [op1, op2...] opc = boletin.views.Menu_Opciones(request, Pregunta, Opciones) ...
views.py:
... def Menu_Opciones(request, Pregunta, Opciones): request.session['ops'] = Opciones request.session['preg'] = Pregunta Menu_Opc(request) opcion = request.session['op'] return opcion ...
... def Menu_Opc(request): Opciones = request.session['ops'] Pregunta = request.session['preg'] form = OpcionesForm(request.POST or None) form.Campo_Opciones.widget.choices = Opciones context = { 'pregunta': Pregunta, 'form': form, } if form.is_valid(): opcion = form.instance.ops.value() + 1 request.session['op'] = opcion return render(request, "inicio.html", context) ...
но у меня была эта ошибка: "Menu_Opciones () отсутствует 1 обязательный позиционный аргумент: 'Opciones'"
Вот обратная связь:
Environment: Request Method: POST Request URL: http://127.0.0.1:8000/ Django Version: 1.9.8 Python Version: 3.4.2 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'boletin', 'proyectoapp'] Installed 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.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback: File "C:\Users\ATI\Desktop\probardjango\lib\site-packages\django\core\handlers\base.py" in get_response 149. response = self.process_exception_by_middleware(e, request) File "C:\Users\ATI\Desktop\probardjango\lib\site-packages\django\core\handlers\base.py" in get_response 147. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\ATI\Desktop\probardjango\src\boletin\views.py" in inicio 42. salida = main(pregunta) File "C:\Users\ATI\Proyecto\ESI\Main.py" in main 52. Respuesta = construir_respuesta(pregunta_lista, 'Profesores', CSin, TMaxCoin) File "C:\Users\ATI\Proyecto\ESI\Entrada_Salida.py" in construir_respuesta 127. opc = boletin.views.Menu_Opciones(Pregunta, Opciones) <--(Request?) Exception Type: TypeError at / Exception Value: Menu_Opciones() missing 1 required positional argument: 'Opciones'
Я делаю что-то не так или есть лучший способ сделать это?
Пожалуйста, подумайте, что я новичок в этом языке.
Заранее спасибо.
Что я уже пробовал:
Я попытался импортировать объект запроса в скрипт таким образом:
импорт django
из запроса на импорт django. http
но это, кажется, " игнорируется"