Flask主要有两个依赖:
- 路由,Web服务器网关接口子系统(由Werkzeug提供)
- 模板系统(由Jinja2提供)
路由:
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
- app = Flask(name),用来创建一个Flask应用,一般Flask类构造函数只有一个必须指定的参数,即程序主模块或包的名字,在大多数程序中,Python的name变量就是所需要的值。(自我理解:类似于 new Vue(),new 一个 vue 实例,new 一个 Flask 实例;从小程序来说就是App() )
- @app.route('/') 这个东西叫路由,程序实例需要知道对每个URL(网址)请求运用哪些代码,所以保存了一个URL到Python函数的映射关系。处理URL和函数之间的关系的程序称为路由。(自我理解:就是访问哪个,就对应哪个函数来处理)
- 下面所修饰的index()函数被叫做视图函数,他来展示你的web页面的样子。
上面函数返回的一个字符串,也可以返回 html 页面:
- 新建 index.html 文件(html文件得放在templates目录下,templates和blog.py同级):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Just for fun</title>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
做到这里本应该返回hello的页面返回了hello world... 然后发现渲染到浏览器的根本就不是html页面,一直都是最开始写的helloworld字符串... 也就是说这个5000端口服务器运行的文件一直都是最开始的那个blog.py,后面再怎么修改重启,服务器上面运行的文件也没有更改掉, 暂停 找找原因
回来了
把5000端口换成别的就可以了....
app.run(port = 7777,debug=True)
接下来向html页面传入动态数据:
<h1>Hello {{username}}</h1>
@app.route('/<username>')
def hello_world(username):
return render_template('index.html', username=username)