python传递变量到类的方法中,如何在Python中同一类的方法之间传递变量

I don't think I'm using class variables correctly. Inside the ClientFormPage class, I initialize the active_form to 'f1_form'. After I post the first form, I'd like to advance the active_form to 'f2_form', however it keeps resetting to 'f1_form'. What is the best way to do this?

class ClientFormPage(PageHandler):

active_form = 'f1_form'

def render_form(self, f1='hidden', f2='hidden', **kw):

self.render('clientforms.html', form1=f1, form2=f2, **kw)

def get(self):

self.render_form(f1='')

def get_form2(self):

self.render_form(f2='')

def post(self):

if self.active_form == 'f1_form':

foo = self.request.get('foo')

if not foo:

self.render_form(f1_form='', foo=foo,

foo_error='has-error has-feedback')

else:

self.active_form = 'f2_form' # This assignment is not sticking

self.get_form2()

return

if self.active_form == 'f2_form':

bar = self.request.get('bar')

if not bar:

self.render_form(f1_form='', bar=bar,

bar_error='has-error has-feedback')

else:

self.active_form = 'f3_form'

self.get_form3()

return

解决方案

If I understand your code and comment well, You want to preserve state (active_form) between requests. To do this you have to use cookies.

You cannot save state in your webapp2 request handler class between requests. For every request a new handler class is created.

An alternative approach is to save the name of your active form in a hidden input of your HTML form.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值