为了账号安全,请及时绑定邮箱和手机立即绑定

将 POST 方法从 Flask 更改为 Django

将 POST 方法从 Flask 更改为 Django

当年话下 2021-10-10 13:40:54
我有一个来自 Flask 应用程序的代码:def getExchangeRates():    """ Here we have the function that will retrieve the latest rates from fixer.io """    rates = []    response = urlopen('http://data.fixer.io/api/latest?access_key=c2f5070ad78b0748111281f6475c0bdd')    data = response.read()    rdata = json.loads(data.decode(), parse_float=float)     rates_from_rdata = rdata.get('rates', {})    for rate_symbol in ['USD', 'GBP', 'HKD', 'AUD', 'JPY', 'SEK', 'NOK']:        try:            rates.append(rates_from_rdata[rate_symbol])        except KeyError:            logging.warning('rate for {} not found in rdata'.format(rate_symbol))             pass    return rates@app.route("/" , methods=['GET', 'POST'])def index():    rates = getExchangeRates()       return render_template('index.html',**locals()) 例如,@app.route装饰器被urls.py文件替换,您在其中指定路由,但是现在,我如何使该methods=['GET', 'POST']行适应Django 方式?我对此有点困惑,有什么想法吗?
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

但是现在,我怎样才能使这methods=['GET', 'POST']条线适应Django 的方式呢?


如果您只想防止使用不同的方法(如 PUT、PATCH 等)调用视图,那么您可以使用require_http_methods装饰器 [Django-doc]:


from django.views.decorators.http import require_http_methods


@require_http_methods(['GET', 'POST'])

def index(request):

    rates = getExchangeRates()   

    return render_template('index.html',**locals()) 

如果您想使用它来将不同的方法“路由”到不同的函数,您可以使用基于类的视图[Django-doc]。


查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信