python - 如何在Django 2中将变量从html注入views.py?
问题描述
我尝试了一些方法,但都没有奏效。该按钮应从文本框中输入的城市刮取天气。当我对城市名称进行硬编码但我不知道如何将该城市名称从 HTML 表单获取到views.py
.
html
:
<form method="POST "action="{% url 'weather' %}">
{% csrf_token %}
<input type="text" value="{{ city }}">
<button type="submit" class="btn btn-info">Get my weather</button>
</form>
视图.py
def scrape_weather(request):
old_weather = Weather.objects.all()
old_weather.delete()
api_adress = "http://api.openweathermap.org/data/2.5/weather?q="
api_key = "&appid=3a99cf24b53d85f4afad6cafe99d3a34"
city = input()
#city = "warsaw"
url = api_adress + city + api_key
json_data = requests.get(url).json()
new_weather = json_data['weather'][0]['main']
degree_kelvin = int(json_data['main']['temp'])
degree = degree_kelvin-273
pressure = json_data['main']['pressure']
new_weather = Weather()
new_weather.degree = degree
new_weather.pressure = pressure
new_weather.weather = new_weather
new_weather.save()
if request.method == 'POST':
form = CityForm(request.POST)
if form.is_valid():
pass
else:
form = CityForm()
return render(request, "news/home.html", {'form': form})
forms.py
:
from django import forms
class CityForm(forms.Form):
city = forms.CharField(max_length=30)
if not city:
raise forms.ValidationError('You have to write something!')
解决方案
在您的模板中,您可以:
<form method="POST "action="{% url 'weather' %}">
{% csrf_token %}
{{ form }}
<button type="submit" class="btn btn-info">Get my weather</button>
</form>
这将为您管理小部件(在这种情况下为文本输入)属性的所有业务name
。
阅读本文了解更多详情。
推荐阅读
- powershell - PowerShell 批量转换图像
- excel - 从列表中提取唯一值时要替换为 NA 的空白
- javascript - 定位兄弟元素的子元素
- wso2 - 如何在 wso2 DSS 中查询 HBASE
- vb.net - vb自动将文本框的内容导出到PC上的txt文件中,每个文件具有不同的名称
- c# - .Net Core 2.1 中的动态代码编译
- powershell - Robocopy as another user
- react-native - 在导航 goBack 上发送道具
- google-cloud-platform - 需要 GCP 计费支持 - 服务已停止但仍需收费
- vba - 根据检测到的 Word 版本在 Word 功能区上显示自定义选项卡?