我不确定这是否可能,但我想获取用户的输入,将其拉到我的views.py中,操作它,然后在其他视图中使用这些数据。
我不需要将这些数据存储在数据库中,因为我不会再次引用它,我希望尽可能地保持这个数据的轻量级。
目前,我正试图使用python库espnff从espn的梦幻足球网站中提取数据。我的主页包括一个文本框和一个提交按钮(想想google.com)。
我已经设置了一些函数,可以梳理像http://games.espn.com/ffl/clubhouse?leagueId=123456这样的espn url来获取leagueID,从那里我可以使用espnff来获取更多关于该联盟的信息。
我的理想用例是有人来我的网站,复制和粘贴他们的联盟url像上面的一样,点击提交,然后将他们带到https://example.com/{ leagueID}/,它将显示不同的信息,我收集。
在没有将用户输入提交给模型的情况下,我还没有找到一种方法来做到这一点。是否可以避免使用数据库?如果是的话,怎么做?
发布于 2017-10-20 18:32:05
我不确定我是否理解它,但是您想要做的事情可以很容易地完成,而无需使用任何模型/数据库或任何其他类型的持久存储。
用户使用表单提交该信息,您可以从视图中的request对象获取URL,解析该URL以获取league_id,然后将用户重定向到/{league_id}。
然后在该视图上,收集league_id参数(从url),使用库(espnff)获取该id的数据,然后使用该数据呈现模板。
例如,实现将出现在这些行中:
在html模板中创建一个表单:
<form method="post" action="/">
{% csrf_token %}
<input type="text" name="league_url"/>
<input type="submit" value="Submit" />
</form>在urls.py中:
url(r'^$', index_view, name="index"),
url(r'^(?P<league_id>[0-9]+)$', league_view, name="league_view")在views.py中:
def index_view(request):
if request.method == 'POST':
league_url = request.POST.get('league_url', None)
# Your code to parse the URL and extract the ID
return HttpResponseRedirect('/{}'.format(league_id))
else:
# render form template
def league_view(request, league_id):
# your code here using the league_id
# and render the page with data(我没有测试这段代码,我只是作为流程的一个示例快速地编写了它)
发布于 2017-10-20 18:34:09
django文档相当广泛地描述了如何使用django进行缓存。您可以找到关于如何使用把它放在这里的文档。
设置好缓存后,您只需按照以下方式使用缓存
from django.core.cache import cache
cache.set('my_key', 'my_value', 60) # number is in seconds
value = cache.get('my_key')您可以提供字典和诸如值。缓存框架将使用泡菜对您进行序列化。
https://stackoverflow.com/questions/46854753
复制相似问题