Flask 노트 1
우선 동적 웹 페이지를 실행하려면
그러나 WSGI는 여전히 밑바닥을 비교하고 그대로 쓰기가 너무 번거로워서 웹 프레임워크가 생겼다. 파이톤이 유명한 것은 바로 Flask와 Django이다.Java의 서브렛도 Spring MVC 프레임워크에 해당합니다.그러나 Flask와 Django는 테스트에 내장된 서버를 가지고 있지만 Spring MVC는 없고 오히려 Spring Boot은 내장된tomcat 용기를 사용할 수 있다.
Flask는 마이크로 프레임워크로'미크'는 그 핵심이 매우 작고 선택할 수 있는 모든 기능이 포함되지 않는다는 것을 가리킨다.그러나 Flask 커뮤니티는 다양한 확장 플러그인을 제공합니다. 필요한 플러그인을 선택해서 원하는 기능을 실현할 수 있습니다.
소개
Flask는 마이크로 프레임워크로'미크'는 그 핵심이 매우 작고 선택할 수 있는 모든 기능이 포함되지 않는다는 것을 가리킨다.그러나 Flask 커뮤니티는 다양한 확장 플러그인을 제공합니다. 필요한 플러그인을 선택해서 원하는 기능을 실현할 수 있습니다.
2. 데모 프레젠테이션
환경 준비
sudo apt install python-pip
sudo pip3 install flask
mkdir flask
cd flask/
hello-world.py 파일
#!/usr/bin/env python3
"""Out first Flask Application"""
from flask import Flask
app = Flask("__name__") # , __name__
# app Flask()
@app.route('/') # ,
def index(): #
return "Hello World!" # http://127.0.0.1:5000/( ) Hello World!
@app.route('/say_hello')
def say_hello():
return "Hello You are so Good!" # http://127.0.0.1:5000/say_hello Hello You are so Good!
if (__name__=="__main__"):
app.run() # app.run(host='0.0.0.0',port=8000)
아주 간단한flask 웹 페이지가 성공적으로 구축되어python 프로그램을 직접 실행합니다
┌─[thekingofnight@parrot]─[~/flask]
└──╼ $chmod +x hello-world.py
┌─[thekingofnight@parrot]─[~/flask]
└──╼ $sudo ./hello-world.py
* Serving Flask app "__name__" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
물론 그럴 수도 있죠. 효과는 똑같아요.
┌─[thekingofnight@parrot]─[~/flask]
└──╼ $FLASK_APP=hello-world.py flask run
* Serving Flask app "hello-world"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
、
3. Flask 프로필을 사용자 정의하는 몇 가지 방식
첫 번째:
app.debug=True
app.secret_key='*****' #
두 번째:
app.config["DEBUG"]=True
config = {
"DEBUG":True,
"SECRET_KEY":'***'
}
app.config.update(config)
세 번째: 프로필 지정,ps: 프로필과 실행 파일이 같은 경로 아래
app.config.from_pyfile('settings.py')
네 번째: 클래스를 프로필로 사용
프로필 foo.py 파일
class Config(object):
DEBUG = False
TESTING = False
DATABASE_URI = 'sqlite://:memory:'
class ProductionConfig(Config):
DATABASE_URI = 'mysql://user@localhost/foo'
class DevelopmentConfig(Config):
DEBUG = True
class TestingConfig(Config):
TESTING = True
#
# app.config.from_object('python ')
app.config.from_object(foo.DevelopmentConfig)
경로
라우팅 사용 방법
첫 번째:
from flask import Flask,request
app = Flask(__name__)
@app.route('/',methods=['GET','POST'])
def index():
print(request)
if request.method == "POST":
return " POST"
else:
return " GET"
if __name__ == '__main__':
app.run()
두 번째:
from flask import Flask,request
app = Flask(__name__)
def index():
return " "
app.add_url_rule('/','index',index,methods=['GET','POST'])
if __name__ == '__main__':
app.run()
5. 역해석
from flask import Flask,redirect,url_for,request
app = Flask(__name__)
@app.route('/',methods=['GET','POST'],endpoint='index_plf') # endpoint
def index():
print(request)
if request.method == "POST":
return " POST"
else:
return " GET"
@app.route('/register',methods=['GET','POST'])
def register():
print(request)
if request.method == "POST":
return " POST"
else:
return redirect(url_for('index_plf')) # url_for index_plf
if __name__ == '__main__':
app.run()
get 방식으로 127.0.0.1:5000/register에 접근할 때 index 보기 함수로 바로 이동합니다
사총사
로부터:redirect
from flask import Flask,redirect,url_for,request
app = Flask(__name__)
@app.route('/',methods=['GET','POST'],endpoint='index_plf') # endpoint
def index():
print(request)
if request.method == "POST":
return " POST"
else:
return " GET"
@app.route('/register',methods=['GET','POST'])
def register():
print(request)
if request.method == "POST":
return " POST"
else:
return redirect(url_for('index_plf')) # url_for index_plf
if __name__ == '__main__':
app.run()
json 데이터 되돌리기: jsonify
from flask import Flask,jsonify
app = Flask(__name__)
@app.route('/plf',methods=['GET','POST'])
def plf():
print(request)
if request.method == "POST":
return jsonify({"status":"OK","msg":"plf POST"})
else:
return jsonify({"status":"OK","msg":"plf GET"})
if __name__ == '__main__':
app.run()
"""
{
"msg": "plf\u754c\u9762 GET",
"status": "OK"
}
"""
렌더링 페이지:rendertemplate
from flask import Flask,render_template,request
app = Flask(__name__)
@app.route('/lt',methods=['GET','POST'])
def lt():
print(request)
if request.method == "POST":
return render_template('lt.html',age=18)
else:
return render_template('lt.html',age=18)
if __name__ == '__main__':
app.run()
ps: 템플릿 렌더링을 주의할 때 html 파일은templates 폴더에 넣어야 합니다.동시에 실행 중인 파일은templates 폴더와 같은 디렉터리에 있어야 합니다
응답 객체:Response
from flask import Flask,Response
app = Flask(__name__)
@app.route('/plf_test',methods=['GET','POST'])
def plf_test():
print(request)
if request.method == "POST":
return Response("plf_test POST")
else:
return Response("plf_test GET")
if __name__ == '__main__':
app.run()
전재 대상:https://www.cnblogs.com/plf-Jack/p/11594175.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.