질문하는 것이 가장 기본적인 것이지만 @app.route('/')
이 내 Linux 서버에서 작동하지 않습니다. 다음은 플라스크 라우팅이 작동하지 않습니다.
from flask import Flask, jsonify, request
from app import models
import json
import time
app = Flask(__name__)
app.url_map.strict_slashes = True
@app.route('/')
def blank():
return 'Hello ABC!'
@app.route('/driftking')
def blank2():
return 'Hello driftking!'
# dynamic route
@app.route("/test/<search_query>")
def search(search_query):
return search_query
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return "POST METHOD"
elif request.method == 'GET':
return "GET REQUEST ARE NOT ALLOWED"
if __name__ == '__main__':
app.run(debug=True)
app.run()
아주 기본적인 응용 프로그램, 모든 로컬 컴퓨터가 아닌 내 리눅스 서버에서 잘 작동합니다.
예. 내가 http://xxx.xxx.xxx.xxx/projectname을로드하면 ---- Hello ABC가 표시됩니다!
내가 http://xxx.xxx.xxx.xxx/projectname/driftking을로드하는 경우 - 나는 http://xxx.xxx.xxx.xxx/projectname/login을로드하면 404 오류
를 찾을 수 없음 - - 나는 http://xxx.xxx.xxx.xxx/projectname/test/search로드 경우가 http://xxx.xxx.xxx.xxx (즉 내 서버의 홈페이지)
에 나를 리디렉션이 http://xxx.xxx.xxx.xxx에 나를 리디렉션 (즉, 내 서버의 홈페이지는)
127.0.0.1 - - [24/Nov/2017 19:37:01] "POST //login HTTP/1.1" 405 -
^^ 이것은 내가 터미널에서 무엇을 얻을 수 있습니다. 나는 매번 두 개의 선행 슬래시를 얻는 이유를 이해하지 못합니다.
하지만 http://xxx.xxx.xxx.xxx/projectname/삽입 할 단어/login을 수행하면 내 게시물 req가 실행됩니다. 로컬 머신에서 같은 시간에 두 개의 선행 슬래시를 얻을 수 없으므로 요청이 처리됩니다.
두 번째'app.run()'호출을 제거하십시오. –
@ArtsiomPraneuski가 제거되었습니다. 그래도 작동이 안되는. '127.0.0.1 - [24/Nov/2017 21:14:07] "POST // login HTTP/1.1"405-' – driftking9987
서버에서 역방향 프록시를 사용하고 있습니까? 아마 잘못 구성되었을 것입니다. – jordanm