Кнопка не выполняет скрипт Django / Python - PullRequest
0 голосов
/ 29 мая 2020

В моем доме. html шаблон:

  <button type="button" class="btn btn-dark"
          method = 'GET' action = '/action_name/' name="audio_record">Record Audio</button>

В моем views.py:

def audio_functions(request):
    print('called function')

В моем urls.py:

path('/action_name/', views.audio_functions, name='audio-record'),

что я делаю не так?

Изменить: я заменил кнопку на предложенную ниже версию:

  <a href="{% url 'audio-record' %}" class="btn btn-dark"
    >Record Audio</a>

Но у меня возникла новая проблема. На самом деле я не хочу перенаправлять по url / action_name. Я просто хочу запустить сценарий python в браузере. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 29 мая 2020

в html:

   <a href="{% url 'audio-record' %}" class="btn btn-dark"
        >Record Audio</a>

и urls.py

path('action_name', views.audio_functions, name='audio-record'),
1 голос
/ 29 мая 2020

В вашем urls.py вам не нужен ведущий прямой sla sh, поскольку django добавляет его автоматически. Замените его на это, и он должен работать:

path('action_name/', views.audio_functions, name='audio-record'),

Также атрибуты method и action обычно будут go в теге <form>, а не button. Также измените type на submit на вашей кнопке.

Как говорит @SALAHEDDINEELGHARBI, вы действительно должны использовать {% url 'audio-record' %}, а не жестко кодировать URL-адрес, однако в данном случае это не проблема ( у вас не должно быть начального sla sh в urls, так как это приведет к URL-адресу с двойным sla sh)

EDIT - В ответ на ваше редактирование: вы не можете запустить python скрипт в браузере. Это распространенное заблуждение. Django - это веб-фреймворк, встроенный в python, да. Но все, что происходит при просмотре, должно происходить в javascript. Если вы хотите использовать python, вам нужно будет позвонить в какую-то конечную точку django, выполнить python и отправить его обратно.

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