0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19

Получить данные со страницы html в views.py

18.03.2020, 19:56. Показов 9990. Ответов 22

Студворк — интернет-сервис помощи студентам
Хочу получить информацию из определенной ячейки в таблице(html-страница) и работать с ней в views.py Как это сделать, помогите пожалуйста!

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<tbody>
                {% for element in qz %}
                    <tr>
                        <form action="{% url 'delete_news' %}" method = "get">
                            <td class="counterCell"></td>
                            <td style="display: none" name="td_id_mysite">{{ element.0 }}</td> <!-- ячейка, из которой нужно получить информацию-->
                            <td>{{ element.1 }}</td>
                            <td>{{ element.2 }}</td>
                            <td><button type="submit"><span class="glyphicon glyphicon-trash"></span></button></td>
                        </form>
                    </tr>
                {% endfor %}
        </tbody>
views.py

Python
1
2
3
4
5
6
def delete_news(request):
  if request.method == 'GET':
    td_id_mysite = request.GET["td_id_mysite"]
 
print(td_id_mysite)
return render(request, 'main/my_newsagent.html')
urls.py

Python
1
2
3
4
5
urlpatterns = [
    ...
    path('main/my_news_agent/', views.delete_news, name='delete_news'),
 
]
Способ с формой нашла в интернете, но print ничего не выводит Заранее спасибо за помощь!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2020, 19:56
Ответы с готовыми решениями:

Получить данные с html страницы
Добрый день! Есть html страница. Хочу получить данные в текстовое поле с этого тега &lt;td...

Получить данные со страницы HTML
Открыл такую тему в ветке по Делфям, но потом понял, что наверное, не совсем там спросил. Продублирую здесь - возможно, кто-то поможет,...

Как получить данные с html страницы
Здравствуйте. Подскажите пожалуйста. Появилась необходимость написать программу, которая при нажатии стартовой кнопки(или по таймеру) может...

22
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
18.03.2020, 22:18
blackcat21, давно не работал с джанго темплейтами.
Если ничего, но данные там должны быть, то попробуй через POST отправлять (не уверен, что так можно данные через GET отправлять).
И почему не использовать джанговскую форму?
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:07  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tbody>
                    {% for element in qz %}
                        <tr>
                            <form action="{% url 'delete_news' %}" method = "post">
                                {% csrf_token %}
                                <td class="counterCell"></td>
                                <td style="display: none" name="td_id_mysite">{{ element.0 }}</td>
                                <td>{{ element.1 }}</td>
                                <td>{{ element.2 }}</td>
                                <td><button type="submit"><span class="glyphicon glyphicon-trash"></span></button></td>
                            </form>
                        </tr>
                    {% endfor %}
            </tbody>

views.py
Python
1
2
3
4
5
6
7
8
def delete_news(request):
    if request.method == 'POST':
        td_id_mysite=request.POST["td_id_mysite"]
 
        print("xxxx")
        print(td_id_mysite)
 
    return HttpResponseRedirect('delete_news')

urls.py
Python
1
2
3
4
5
urlpatterns = [
    ...
    path('main/my_news_agent/', views.delete_news, name='delete_news'),
 
]
Вот я делаю через пост, ошибок никаких не выдает, но не выводит ни первый print, ни второй... я уже совсем не знаю что делать
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:14
{{ element.0 }} - тут значение вообще есть? В функцию заходит вообще?
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:17  [ТС]
Да, конечно, в таблице в этой ячейке значение есть
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:20
blackcat21, а в функцию заходит?

Добавлено через 2 минуты
А вообще посмотри в браузере в инспекторе на вкладке Network, какой запрос уходит (и уходит ли он вообще).
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:23  [ТС]
В "{% url 'delete_news' %}"? Я вот даже не могу понять, но вроде нет, т.к. я поставила точку останова на функцию и ничего не останавливается...
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:26
Цитата Сообщение от blackcat21 Посмотреть сообщение
В "{% url 'delete_news' %}"? Я вот даже не могу понять, но вроде нет, т.к. я поставила точку останова на функцию и ничего не останавливается...
Может, ты просто не активировала режим дебага?

Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
А вообще посмотри в браузере в инспекторе на вкладке Network, какой запрос уходит (и уходит ли он вообще).
или же просто поставь принт
Python
1
2
3
4
5
6
7
8
9
def delete_news(request):
    print('some text', request.POST)
    if request.method == 'POST':
        td_id_mysite=request.POST["td_id_mysite"]
 
        print("xxxx")
        print(td_id_mysite)
 
    return HttpResponseRedirect('delete_news')
сделай снова запрос и посмотри, что в консоле вывелось. Если ничего - то показывай урлы свои.
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:30  [ТС]
Ничего

urls.py
Python
1
2
3
4
5
6
7
8
9
10
urlpatterns = [
    path('', views.index, name='index'),
    path('main/register/', views.RegisterFormView.as_view(), name='register'),
    path('main/login/', views.LoginFormView.as_view(), name='login'),
    path('main/logout/', views.LogoutView.as_view(), name='logout'),
    path('main/my_news_agent/', views.my_newsagent, name='my_newsagent'),
 
    path('main/my_news_agent/', views.delete_news, name='delete_news'),
 
]
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:31
Python
1
2
3
    path('main/my_news_agent/', views.my_newsagent, name='my_newsagent'),
 
    path('main/my_news_agent/', views.delete_news, name='delete_news'),
прикольно
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:34  [ТС]
А что мне туда дописывать, если я не хочу, чтобы перебрасывало на какую-либо страницу?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:40
Цитата Сообщение от blackcat21 Посмотреть сообщение
А что мне туда дописывать, если я не хочу, чтобы перебрасывало на какую-либо страницу?
ну вообще есть несколько вариантов:
1. Если не хочешь, чтобы страницу рефрешило вообще, используй ajax
2. Можно в отдельной вьюхе (например, delete_news) обрабатывать запрос и редиректить на my_newsagent. Только нужно сделать другой path для delete_news.
3. Можешь в этой же вьюхе (my_newsagent) обрабатывать запрос (он у тебя сейчас туда и уходит, если что) и рефрешить страницу.
1
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 12:52  [ТС]
Я так поняла, для меня 3-ий вариант оптимальнее всего)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tbody>
                    {% for element in qz %}
                        <tr>
                            <form action="{% url 'my_newsagent' %}" method = "post">
                                {% csrf_token %}
                                <td class="counterCell"></td>
                                <td style="display: none" name="td_id_mysite">{{ element.0 }}</td>
                                <td>{{ element.1 }}</td>
                                <td>{{ element.2 }}</td>
                                <td><button type="submit"><span class="glyphicon glyphicon-trash"></span></button></td>
                            </form>
                        </tr>
                    {% endfor %}
            </tbody>
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def my_newsagent(request):
 
    ...
 
 
    if request.method == 'POST':
        td_id_mysite=request.POST["td_id_mysite"]
 
        print("xxxx")
        print(td_id_mysite)
 
 
    return render(request, 'main/my_newsagent.html', {'qz': qz})

Python
1
2
3
4
5
6
7
8
9
urlpatterns = [
    path('', views.index, name='index'),
    path('main/register/', views.RegisterFormView.as_view(), name='register'),
    path('main/login/', views.LoginFormView.as_view(), name='login'),
    path('main/logout/', views.LogoutView.as_view(), name='logout'),
    path('main/my_news_agent/', views.my_newsagent, name='my_newsagent'),
 
 
]
Но что не так сейчас?
Ошибка:
MultiValueDictKeyError at /main/my_news_agent/
'td_id_mysite'
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 12:59
blackcat21, покажи всю вьюху. Почему-то у тебя в request.POST нет ключа td_id_mysite
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 13:02  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def my_newsagent(request):
    cursor = connection.cursor()
    cursor1 = connection.cursor()
    cursor2 = connection.cursor()
    cursor.execute(
        "SELECT sites.site_title, sites.url FROM sites, my_sites, auth_user WHERE auth_user.id = my_sites.id_user AND sites.id = my_sites.id_site AND auth_user.id =" + str(
            request.user.id))
    cursor1.execute(
        "SELECT sites.site_title, sites.url FROM sites, my_sites, auth_user WHERE auth_user.id = my_sites.id_user AND sites.id = my_sites.id_site AND auth_user.id =" + str(
            request.user.id))
    cursor2.execute(
        "SELECT sites.id, sites.site_title, sites.url FROM sites, my_sites, auth_user WHERE auth_user.id = my_sites.id_user AND sites.id = my_sites.id_site AND auth_user.id =" + str(
            request.user.id))
 
    q = [str(row[0]) for row in cursor.fetchall()]
 
    z = [str(row[1]) for row in cursor1.fetchall()]
 
    x = [str(row[0]) for row in cursor2.fetchall()]
 
    qz = [(x[i], q[i], z[i]) for i in range(len(q))]
 
 
    if request.method == 'POST':
        td_id_mysite=request.POST["td_id_mysite"]
 
        print("xxxx")
        print(td_id_mysite)
 
 
    return render(request, 'main/my_newsagent.html', {'qz': qz})
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 13:04
blackcat21, не знаю. Всё нормально, вроде.
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
посмотри в браузере в инспекторе на вкладке Network, какой запрос уходит
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 13:08  [ТС]
Вот
Миниатюры
Получить данные со страницы html в views.py  
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 13:11
blackcat21, ну вот, 500 ошибка. но посмотри, что именно в запросе, какие параметры, детали его? что в консоли выводится?
0
0 / 0 / 0
Регистрация: 04.02.2017
Сообщений: 19
19.03.2020, 13:15  [ТС]
[19/Mar/2020 13:13:59] "GET /main/my_news_agent/ HTTP/1.1" 200 7551
Internal Server Error: /main/my_news_agent/
Traceback (most recent call last):
File "C:\Users\Stepa\Python\NewsAgent\env\lib \site-packages\django\utils\datastructures.py" , line 76, in __getitem__
list_ = super().__getitem__(key)
KeyError: 'td_id_mysite'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\Stepa\Python\NewsAgent\env\lib \site-packages\django\core\handlers\exception. py", line 34, in inner
response = get_response(request)
File "C:\Users\Stepa\Python\NewsAgent\env\lib \site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Stepa\Python\NewsAgent\env\lib \site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Stepa\Python\NewsAgent\main\vi ews.py", line 45, in my_newsagent
td_id_mysite=request.POST["td_id_mysite"]
File "C:\Users\Stepa\Python\NewsAgent\env\lib \site-packages\django\utils\datastructures.py" , line 78, in __getitem__
raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDi ctKeyError: 'td_id_mysite'
[19/Mar/2020 13:14:05] "POST /main/my_news_agent/ HTTP/1.1" 500 83046
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
19.03.2020, 13:29
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
что именно в запросе, какие параметры, детали его?
???

Добавлено через 1 минуту
и посмотри, что вообще приходит в request.POST во вьюхе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2020, 13:29
Помогаю со студенческими работами здесь

Как получить данные с html страницы
Всегда интересовало, как к примеру пишут ботов для вк, или скрипты какие-нибудь для сайцтов итп, но механизм взаимодействия я не понимаю -...

Получить данные dict с html страницы (Ruby)
Не знаю как используя Nokogiri можно получить данные dataLayer: &lt;head&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;...

Нужен пример кода как получить данные из текстовых полей HTML страницы
Кто-нибудь может привести пример кода как получить данные из текстовых полей HTML страницы. Т.е. я ввожу данные в текстовые поля на HTML...

CGI. Как получить данные из html формы и отослать данные клиенту в html формате?
Господа помогите с cgi. Никогда этого не делал под VB, а сейчас очень надо. Как получить данные из html формы и отослать данные клиенту в...

Спарсить данные с HTML страницы
Имеется HTML страница, со следующими содержаниеми: &lt;table class=&quot;table table-hover&quot;&gt; &lt;thead&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru