页面刷新时如何防止重新发送输入的数据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 (将#修改为@)