Python POST код запроса не работает в django
Я новичок в Django и у меня есть POST запрос, который прекрасно работает в обычном Python CLI. Он возвращает мне веб-страницу, да, веб-страницу, а затем я могу просто использовать Regex для извлечения некоторой ее части и все. Однако у меня много проблем при попытке сделать то же самое в Django и показать извлеченный текст на веб-странице.
Ниже приведены фрагменты кода из моих файлов. Пожалуйста, имейте в виду, что я новичок в Django & Web.
Вот urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.output, name='getINFO')
]
Вот шаблон домашней страницы home.html
<body>
<script>
var link = '{% url "getINFO" %}';
</script>
<button onclick="location.href = link">Submit</button><hr>
{% if data %}
<p>{{data}}</p>
{% endif %}
</body>
Вот функция в views.py
def output(request):
headers = {
'Connection':'keep-alive',
'Pragma':'no-cache',
'Cache-Control':'no-cache',
'Upgrade-Insecure-Requests':'1',
'Origin':'https://www.xxxxxx.com',
'Content-Type':'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Referer':'https://www.xxxxxxx.com',
'Accept-Language':'en-US,en;q=0.9'
}
payload = {
'__VIEWSTATE':'xxx',
'__VIEWSTATEGENERATOR':'xxx',
'__EVENTVALIDATION':'xxx',
'MIS':'xxxxxxxxxxxxx',
'MISB':'xxxx'
}
url = 'https://www.xxxxxx.com'
res = requests.post(url,headers=headers, data=payload)
price = re.search('style="font-size:X-Large;">(.*?)\/-<\/span>',res.text)
return render(request,'home.html',{'data':price})
Приведенный выше запрос прекрасно работает в обычном Python CLI, и цена действительно имеет извлеченный текст, который я могу увидеть, распечатав его на консоли. Я хочу сделать то же самое здесь, распечатать любой текст, который есть у price, на веб-странице.