Slide 1

Slide 1 text

Flask Racterub@ITAC 1

Slide 2

Slide 2 text

Whoami? • 電通英專⼤⼀ • 好像沒什麼好講的了 2

Slide 3

Slide 3 text

簡報在這 https://reurl.cc/z8Kqqy 3

Slide 4

Slide 4 text

Flask • Flask是⼀個使⽤Python編寫的輕量級Web應⽤框架。 • Flask沒有預設使⽤的資料庫、表單驗證⼯具,但是可以⽤ Flask-extension加入這些功能:ORM、表單驗證⼯具、檔 案上傳、各種開放式⾝分驗證技術。 4

Slide 5

Slide 5 text

GitHub • https://git.io/Jfe1c • 範例 Code 在這邊ㄛ,之後⼤部分會以實作為主 • 如果你裝不起來的 • http://racterub.me:8000 • 拜託不要把他玩壞 5

Slide 6

Slide 6 text

起⼿式 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run() 6

Slide 7

Slide 7 text

In-url param @app.route("/db//") def db(dbname, dbid): return "dbname: %s, dbid: %s" % (dbname, dbid+123) 7

Slide 8

Slide 8 text

GET param @app.route("/get/") def get(): name = request.args.get("name") passwd = request.args.get("passwd") return "name: %s, password: %s" % (name, passwd) 8

Slide 9

Slide 9 text

POST param @app.route("/post/") def post(): name = request.form["name"] passwd = request.form["passwd"] return "name: %s, password: %s" % (name, passwd) 9

Slide 10

Slide 10 text

Login @app.route("/login/", methods=["POST", "GET"]) def login(): if request.method == "POST": try: if (request.form["username"] == "test" and request.form["password"] == "test"): session["user"] = request.form["username"] return "Success" else: return redirect(url_for("login")) except ValueError: return "Something broke", 400 else: return render_template("login.html") 10

Slide 11

Slide 11 text

Serve static file @app.route("/robots.txt") def robot(): return send_from_directory("static", "robots.txt") 11

Slide 12

Slide 12 text

make_response @app.route("/makeresponse/") def makeresp(): resp = make_response("test", 200) resp.headers['X-Author'] = "ITAC" return resp 12

Slide 13

Slide 13 text

render_template @app.route("/jinja/") def jinja(name): return render_template("index.html", title=name) 13

Slide 14

Slide 14 text

Q/A 14