在没有模型的情况下获取和操作用户数据

2024-10-01 19:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定这是否可行,但我想获取用户的输入,将其拉入my views.py,对其进行操作,然后在其他视图中使用该数据

我不需要将这些数据存储在数据库中,因为我不会再次引用它,并且我希望尽可能地保持它的轻量级

目前,我正在尝试使用python库espnff从espn的fantasyfootball站点获取数据。我的主页由一个文本框和一个提交按钮组成(想想google.com)

我设置了一些函数,可以通过espn的url(比如http://games.espn.com/ffl/clubhouse?leagueId=123456)来获取联赛id,然后我使用espnff来获取更多关于该联赛的信息

我的理想用例是有人来到我的站点,复制并粘贴他们的联盟url,就像上面的一样,单击submit,然后将他们带到https://example.com/{{leagueID}/那里将显示我收集的不同信息

我还没有找到一种不将用户输入提交到模型的方法。可以避免使用数据库吗?如果是,怎么办


Tags: 数据用户pycom视图信息数据库url
2条回答

django文档非常广泛地描述了如何使用django进行缓存。您可以找到有关如何set that up here的文档

一旦设置好了缓存,您只需按以下方式使用缓存

from django.core.cache import cache

cache.set('my_key', 'my_value', 60) # number is in seconds
value = cache.get('my_key')

您可以提供字典和值等。缓存框架将使用pickle为您序列化

我不确定我理解的是否正确,但是您尝试做的事情可以很容易地完成,而不需要使用任何模型/数据库或任何其他类型的持久性存储

用户使用表单提交信息,从视图中的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>

在url.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

(我没有测试那段代码,我只是快速编写了它作为流程的一个示例)

相关问题 更多 >

    热门问题