简介
Flask是一个使用python编写的轻量级的Web应用框架
(Django是一个重量级的框架)
Flask本身相当于一个内核,其他几乎所有的功能都要用到第三方拓展来实现
为什么要使用Web框架?
避免重复造轮子
典例1
from flask import Flask app = Flask(__name__) @app.route('/') #装饰器 def hello_world(): return "Hello World!" if __name__ == "__main__": app.run()
ctrl+c就停止了
典例2
from flask import Flask app = Flask(__name__) @app.route('/') #装饰器 def hello_world(): return "Hello World!" @app.route('/abc') def hello_world1(): return """ <form> 账号:<input><br> 密码:<input> </form> """ if __name__ == "__main__": app.run()
典例3
from flask import Flask from flask import request app = Flask(__name__) @app.route('/') #装饰器 def hello_world(): return "Hello World!" @app.route('/login') #装饰器 def hello_world2(): name = request.values.get("name") pwd = request.values.get("pwd") return f'name={name}, pwd={pwd}' @app.route('/abc') def hello_world1(): return """ <form action="/login"> 账号:<input name="name"><br> 密码:<input name="pwd"> <input type="submit"> </form> """ if __name__ == "__main__": app.run()
点击提交之后
模板
如果我们的整个页面都是靠这种返回字符串的形式来完成网页的话,那是肯定不行的
整个网页可能是成千上万行代码
这个时候我们就需要靠 模板
from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route('/tem') def hello_world3(): return render_template("index.html") if __name__ == '__main__': app.run()
#index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>My Page</title> </head> <body> <h1>疫情追踪</h1> </body> </html>
使用Ajax局部刷新页面
比如页面不变,但是某张图变一下
基本格式:
from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route('/tem') def hello_world3(): return render_template("index.html") @app.route('/ajax', methods=["get","post"]) def hello_world4(): return '10000' if __name__ == '__main__': app.run()
#index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>My Page</title> <script src="../static/js/jquery-1.11.1.min.js"></script> </head> <body> <h1>疫情追踪</h1> <h3>实时报道</h3> <button>点我有惊喜</button> <script> $("button").click(function () { $.ajax({ url:"/ajax", type:"post", data:{"name":"李四","score":99}, success:function (d) { $("h1").html("武汉感染人数"+d) }, error:function () { alert("发送ajax请求失败") } }) }) </script> </body> </html>