目录
本文章会陆续更新哦!
一、python和Flask下载
python下载这里不再讲解,直接去官网下载就行。
下载Flask模块
使用pip
在cmd中执行:
pip install flask
cmd打开方式: windows系统 同时按下win键和R键,输入cmd,点击确定。
二、一个简单的程序
import flask
app = flask.Flask(__name__)
@app.route("/")
def home():
return flask.render_template("home.html")
if __name__ == "__main__":
app.run(host = "127.0.0.1", port = 5000, debug = True)
第一行导入了flask模块。第三行实例化了一个对象app。
第四行使用装饰器联系了路由"/"和函数home的关系。第六行使用render_template函数打开home.html。
第九行运行,设置url根目录为127.0.0.1,端口5000,开启debug。
运行后打开网址127.0.0.1:5000即可看到home.html页面。
三、form表单
main.py代码:
import flask
app = flask.Flask(__name__)
@app.route("/")
def home():
return flask.return_template("biaodan.html")
@app.route("/result_/")
def result_():
name = flask.request.values.get("namei")
print(name)
return flask.return_template("chenggong.html")
if __name__ == '__main__':
app.run(host = "127.0.0.1", port = 5000, debug = True) # 开启debug
biaodan.html代码:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
</head>
<body>
<form action = "{{ url_for('result_') }}">
<input name = "namei">输入:
</form>
</body>
</html>
注:HTML不区分大小写。
chenggong.html代码:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
</head>
<body>
<p>执行成功!</p>
</body>
</html>
执行结果:
代码讲解:
定义了home函数和result_函数,分别用来打开网页和接受数据。
method | 见下 |
action | 路径 |
form表单有多种提交方法,最常用的是get和post。在默认情况下为get,需要设置时添加method参数。
get | 传输数据时会将数据带在网址之后 |
post | 传输数据时不显示数据,一般用于传输密码等数据 |
在需要使用post方法时,main.py代码需要改变:
@app.route("/result_/", methods = ["GET, "POST"])
def result_():
name = flask.request.values.get("namei")
print(name)
return flask.return_template("chenggong.html")
name = flask.request.values.get("namei")用于接收数据。接受并输出后会打开chenggong.html页面。
四、路径
1.直接写
在html中直接写路径:如"/home/"。
2.使用url_for -->推荐
在html中写"{{ url_for('函数名') }}",flask会自动把它变为路径,相比前一种方法就算路径改了也不需要改这里的代码。
例:
<html>
<head>
</head>
<body>
<from action = "{{ url_for('abc') }}"> <!-- 等于<from action = "/abc/"> -->
<p><input name = "in">请输入:</p>
<button>确定</button>
</from>
</body>
</html>
五、重定向
格式(在py文件中):
return redirect("路径")
如:
return redirect("/")
这样,就能重定向到路由"/"了。
例:
import flask
app = flask.Flask(__name__)
@app.route("/")
def home():
return flask.return_template("home.html")
@app.route("/aaa/")
def aaa():
return flask.redirect("/")
六、动态路由
只需要在@app.route的路径中加<名字>就好了。
例:
import flask
app = flask.Flask(__name__)
@app.route("/<name>/")
def home():
return flask.return_template("home.html", name = name)
动态路由的好处就是在网址中输入任意的路径都可以跳转。