Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ITAC | Flask - Basic Flask
Search
racterub
May 19, 2020
Technology
1
86
ITAC | Flask - Basic Flask
ITAC | Flask - Basic Flask
racterub
May 19, 2020
Tweet
Share
More Decks by racterub
See All by racterub
IM620 Web Security
racterub
0
100
ITAC | Websec 3
racterub
0
210
ITAC | Websec 2
racterub
0
180
ITAC | Websec 1
racterub
0
220
ITAC | Linux Basics
racterub
0
63
Introducing Reverse Engineering @ YZU CS250
racterub
0
140
ITAC | Jinja & Bootstrap
racterub
1
70
ITAC-Flask | Environment setup
racterub
1
60
Other Decks in Technology
See All in Technology
Garoon 開発チーム / Garoon development team
cybozuinsideout
PRO
2
2.9k
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
0
150
クラウドサインにおけるプロダクトマネージャーの役割と開発プロセス / 20240410_cloudsign-PdM
bengo4com
1
680
Janus
bkuhlmann
1
490
Hands-on / Kaname Frusawa / Cloud Compare Users Meetup 2024 at University of Tokyo on April 17
paraworld
2
470
NgRx Signal Store
rainerhahnekamp
0
120
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
340
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
14
35k
現代CSSフレームワークの内部実装とその仕組み
poteboy
2
710
最近たまに見かけるTiDBってなんだ? - Findy
pingcap0315
2
600
巨大なテーブルのテーブル定義を無停止で安全に誰でも変更できるようにする / Table-definitions-for-huge-tables-can-be-modified-by-anyone-safely-and-non-disruptively
freee
1
740
インシデントレスポンスのライフサイクルを廻すポイントってなに / Pinpoints of Incidentresponse Lifecycle for Operation
sakaitakeshi
1
300
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Navigating Team Friction
lara
177
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
38k
It's Worth the Effort
3n
180
27k
Designing Experiences People Love
moore
136
23k
Design by the Numbers
sachag
274
18k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
Done Done
chrislema
178
15k
The Invisible Side of Design
smashingmag
294
49k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Transcript
Flask Racterub@ITAC 1
Whoami? • 電通英專⼤⼀ • 好像沒什麼好講的了 2
簡報在這 https://reurl.cc/z8Kqqy 3
Flask • Flask是⼀個使⽤Python編寫的輕量級Web應⽤框架。 • Flask沒有預設使⽤的資料庫、表單驗證⼯具,但是可以⽤ Flask-extension加入這些功能:ORM、表單驗證⼯具、檔 案上傳、各種開放式⾝分驗證技術。 4
GitHub • https://git.io/Jfe1c • 範例 Code 在這邊ㄛ,之後⼤部分會以實作為主 • 如果你裝不起來的 •
http://racterub.me:8000 • 拜託不要把他玩壞 5
起⼿式 from flask import Flask app = Flask(__name__) @app.route("/") def
hello(): return "Hello World!" if __name__ == "__main__": app.run() 6
In-url param @app.route("/db/<dbname>/<int:dbid>") def db(dbname, dbid): return "dbname: %s, dbid:
%s" % (dbname, dbid+123) 7
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
POST param @app.route("/post/") def post(): name = request.form["name"] passwd =
request.form["passwd"] return "name: %s, password: %s" % (name, passwd) 9
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
Serve static file @app.route("/robots.txt") def robot(): return send_from_directory("static", "robots.txt") 11
make_response @app.route("/makeresponse/") def makeresp(): resp = make_response("test", 200) resp.headers['X-Author'] =
"ITAC" return resp 12
render_template @app.route("/jinja/<name>") def jinja(name): return render_template("index.html", title=name) 13
Q/A 14