現在、python3
とFlask
を使用しています。同じルートを使用して2つの関数を定義しています。 -index2
を印刷するにはどうすればよいですか。
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/')
def index():
if request.authorization and request.authorization.username == 'user1' and request.authorization.password == 'pass1':
return '<h1>You are logged in</h1>'
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})
@app.route('/')
def index2():
print('In Index 2')
if __name__ == '__main__':
app.run(debug=True)
複数のオプションがあります。その1つは、index
関数内からindex2
関数を呼び出すことです。
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/')
def index():
if request.authorization.username == 'user1' and request.authorization.password == 'pass1':
index2() # you can return index2() if that's the logged in page.
return '<h1>You are logged in</h1>'
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})
def index2():
print('In Index2')
if __name__ == '__main__':
app.run(debug=True)
2番目のオプションは、呼び出されるhttpメソッドに基づいて両方の機能を異ならせることです。
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/')
def index():
if request.authorization.username == 'user1' and request.authorization.password == 'pass1':
return '<h1>You are logged in</h1>'
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})
@app.route('/', methods=['POST'])
def save():
print('Save operations here')
if __name__ == '__main__':
app.run(debug=True)
3番目のオプションは、さまざまなパラメーターを使用することです。
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/')
def index():
if request.authorization.username == 'user1' and request.authorization.password == 'pass1':
return '<h1>You are logged in</h1>'
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})
@app.route('/<string:page_name>')
def index2(page_name):
print(f"{page_name}")
if __name__ == '__main__':
app.run(debug=True)
Index2を呼び出すには、次のすばやく簡単なコードを試してください。あなたのニーズに合うように改善できると私は確信しています。
@app.route('/')
def index():
if request.authorization and request.authorization.username == 'user1' and request.authorization.password == 'pass1':
return '<h1>You are logged in</h1> <a href="{{ url_for('index2') }}">Click me to go to index2</a>'
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})
@app.route('/index2')
def index2():
print ('In Index2')