小白问一个模拟登陆的问题,跪求各位大神

2019-11-22 17:55:21 +08:00
 xuehao
@app.route('/login/<no>')
def show_user_profile(no):
    session['loginNo'] = no
    return 'success'

@app.route('/get')
def hello():
    loginNo = session.get('loginNo')
    return 'loginNo {}'.format(loginNo)

@app.route('/start')
def start():
    session.clear()
    step1 = doLogin1()
    loginNo = session.get('loginNo')
    print(loginNo)
    while(not loginNo or len(str(loginNo)) != 6):
        print(session.get('loginNo'))
        continue
    step1.find_element_by_id("yzm").send_keys(loginNo)
    step1.find_element_by_id("loginStep2_yzm").click()
    time.sleep(3600)
    return 'ok'

这是一个 flask 项目,由于验证码需要等待,写了一个 while 循环,想着等手机的验证码传到接口然后存在 session 里,然后让登陆线程发现 session 中的验证码继续工作。但是现在发现 start 接口一直从 session 中获取的是 none,但是 get 接口却能获取到。这是为什么啊?

2041 次点击
所在节点    Python
1 条回复
different
2019-11-22 23:01:38 +08:00
虽然看的不是很懂,但是
while(not loginNo or len(str(loginNo)) != 6):

print(session.get('loginNo'))

continue


应该改成
while(not loginNo or len(str(loginNo)) != 6):

print(session.get('loginNo'))

loginNo = session.get('loginNo')

continue

吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/622216

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX