如何解决页面刷新时如何防止重新发送输入的数据F5/ Django
请,建议。刷新page(F5)时如何转义重发会话数据。 输入城市的名称,看适当的留言。 如果我刷新页面(F5),则该消息仍将出现在页面上。 看起来好像在刷新页面时 以前的数据正在从浏览器发送到我们的应用。
views.py:
import requests
from django.shortcuts import render,redirect
from .models import City
from .forms import CityForm
def index(request):
url = 'http://api.openweathermap.org/data/2.5/weather?q={}&units=imperial&appid='
err_msg = ''
message = ''
message_class = ''
if request.method == 'POST':
form = CityForm(request.POST)
if form.is_valid():
new_city = form.cleaned_data['name']
existing_city_count = City.objects.filter(name=new_city).count()
if existing_city_count == 0:
r = requests.get(url.format(new_city)).json()
if r['cod'] == 200:
form.save()
else:
err_msg = 'City does not exist in the world!'
else:
err_msg = 'City already exists in the database!'
if err_msg:
message = err_msg
message_class = 'is-danger'
else:
message = 'City added successfully!'
message_class = 'is-success'
form = CityForm()
cities = City.objects.all()
weather_data = []
for city in cities:
r = requests.get(url.format(city)).json()
city_weather = {
'city': city.name,'temperature': int((r['main']['temp']-32)*5/9),'description': r['weather'][0]['description'],'icon': r['weather'][0]['icon'],}
weather_data.append(city_weather)
context = {
'weather_data': weather_data,'form': form,'message': message,'message_class': message_class
}
return render(request,'weather/weather.html',context
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。