如何使用python路由渲染反应?

时间:2020-04-25 20:45:54

标签: python reactjs

我想在这里(下面)使用此路由并渲染我的react文件。使用python路由...。有人可以给我一些指导,告诉我如何实现此目标吗?

@Auth.route('/login', methods=['GET'])
def login():
    #data = {'username':'bob', 'password':'peepee123'}
    #session['token'] = 'jsdkfkj934ujeklfjdlndsflds'

auth = request.authorization

if auth and auth.password == 'password':
    token = jwt.encode({'user': auth.username}, app.config['SECRET_KEY'])

    return jsonfiy({'token': token.decode('UTF-8')})

return make_response('Could Not verify!', 401, {'WWW-Authenticate': 'Basic realm = "Login Required"'})

1 个答案:

答案 0 :(得分:1)

如果要使用python在服务器站点中渲染反应,则可以使用python-react-v8,但是您需要在服务器和客户端中使用相同的反应树,否则它将无法正常工作,请检出hydrate in docs。为此,您需要有一个可正常运行的React应用。

用法示例:

import react

# setup react
react.set_up() # Initialize V8 machinery
react.utils.load_libs(['./bundle.js'])

@Auth.route('/login', methods=['GET'])
def login():
    #data = {'username':'bob', 'password':'peepee123'}
    #session['token'] = 'jsdkfkj934ujeklfjdlndsflds'

auth = request.authorization

if auth and auth.password == 'password':
    token = jwt.encode({'user': auth.username}, app.config['SECRET_KEY'])
    data =  {'token': token.decode('UTF-8')};
    react_ = react.React({
        'url': request.get_full_url(),
        'data': data
    })

    context = {
        'content': react_.render(),
        'data': react_.to_json(data)}

    return render('index.html', context);

data = {'token': null, 'reason': "Login Required"}
react_ = react.React({
    'url': request.get_full_url(),
    'data': data
})

context = {
    'content': react_.render(),
    'data': react_.to_json(data)
}

return render('index.html', context);


相关问题