Web
flask 기초
Dan-k
2020. 1. 13. 16:17
반응형
flask를 이용하여 web을 만들어보자.
기초 1편
hello flask 출력해보기
flask 라이브러리를 다운받고!
1. 기초
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello flask! man'
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True,port=5001)
app.run(host=''0.0.0.0') 으로 입력하면 해당 서버의 ip로 host가 설정된다. 즉 외부에서도 접근 가능하게 됨
위 파일을 실행시키면
이런 화면이 나오고
저 아래 주소를 따라가면 web 에 Hello flask! man 이라는 문구가 뙇 찍히게 된다.
어렵군..
flask를 활용하여 web을 만들려면 기본적으로 html, css 에 대한 지식은 있어야 함...허허허
2. URI를 활용하여 변수 적용하기
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def hello_user(username):
return 'hello' + username
@app.route('/')
@app.route('/<int:worldno>/<feature>')
def inputTest(worldno=None, feature=None):
return render_template('base.html', worldno=worldno, feature=feature)
## int로 변수를 받을때는 반드시 <int: 변수명> 으로 입력해줘야함
3. 특정 함수를 호출하여 적용하기
url_for를 이용하여 원하는 함수를 불러오고, 변수를 넣어줄수 있음
from flask import Flask, url_for
app = Flask(__name__)
@app.route("/hello/")
def hello():
return "Hello World"
@app.route("/profile/<username>")
def get_profile(username):
return "profile: " + username
if __name__ == "__main__":
with app.test_request_context():
print(url_for('hello'))
print(url_for('get_profile', username='flash'))
### url_for 함수를 활용하여, 원하는 함수에 argument를 넣어줄 수 있음
4. REST API를 이용하여 data 보여주기
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/json_test')
def hello_json():
data = {'name' : 'Aaron', 'family' : 'Byun'}
return jsonify(data)
@app.route('/server_info')
def server_json():
data = { 'server_name' : '0.0.0.0', 'server_port' : '8080' }
return jsonify(data)
5. POST, GET method
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
@app.route('/login', methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['myName']
return redirect(url_for('success', name=user))
else:
user = request.args.get('myName')
return redirect(url_for('success', name=user))
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5001)
<!DOCTYPE html>
<html>
<body>
<form action = "http://0.0.0.0:8080/login" method = "get">
<p>Enter Name:</p>
<p><input type = "text" name = "myName" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
인용 : 잔재미코딩 : https://www.fun-coding.org/flask_basic-2.html
728x90
반응형
LIST