我創建了一個表單,每次提交時都會html
回傳資料。Django
但是,當提交后重新加載頁面時,表單中輸入的資料會丟失。為了解決這個問題,我從檔案和這個博客中獲得靈感,然后我修改了我的views.py
檔案:
def search(request):
if request.method == 'POST':
search = request.POST['search']
form = MyForm(request.POST)
max_pages_to_scrap = 15
final_result = []
for page_num in range(1, max_pages_to_scrap 1):
url = "https://www.ask.com/web?q=" search "&qo=pagination&page=" str(page_num)
res = requests.get(url)
soup = bs(res.text, 'lxml')
result_listings = soup.find_all('div', {'class': 'PartialSearchResults-item'})
for result in result_listings:
result_title = result.find(class_='PartialSearchResults-item-title').text
result_url = result.find('a').get('href')
result_desc = result.find(class_='PartialSearchResults-item-abstract').text
final_result.append((result_title, result_url, result_desc))
context = {'final_result': final_result}
form = MyForm()
return render(request, 'index.html', context,{'form':form})
我在我的models.py
檔案中寫了以下代碼:
from django import forms
from django.db import models
# Create your models here.
class MyForm(forms.Form):
search = forms.CharField(max_length=500)
這是我的index.html
檔案的內容:
<form method="POST" action="search">
{% csrf_token %}
<input type="search" name="search" placeholder="Search here..." value="{{form.search.value}}" autofocus x-webkit-speech/>
</form>
盡管我進行了修改,但表單資料在提交后并未保留。
uj5u.com熱心網友回復:
它無法保存,因為您正在將全新的表單傳遞給背景關系:
...
form = MyForm()
return render(request, 'index.html', context,{'form':form})
只需移動form = MyForm()
到類似的東西elif request.method == 'GET':
:
if request.method == 'POST':
...
form = MyForm(request.POST)
...
for page_num in range(1, max_pages_to_scrap 1):
...
elif request.method == 'GET':
form = MyForm()
context = {'final_result': final_result, 'form': form}
return render(request, 'index.html', context)
PS保持form
你的背景關系,它更清晰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497724.html