操作平台Windows Python2.7
安装
pip install flask
Hello World程序
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello_world():
return "Hello World!!"
if __name__ == '__main__':
app.run()
route装饰器是用于把一个函数绑定到一个 URL 上
主页后面不同的URL
@app.route('/') def index_page(): return "this is the homepage" @app.route('/hello') def hello_world(): return "Hello World!!" @app.route('/user') def user(): return "this is the userspage"
变量规则
@app.route('/user/<username>') def show_user_profile(username): # 显示用户的名称 return 'User %s' % username @app.route('/post/<int:post_id>') def show_post(post_id): # 显示提交整型的用户"id"的结果,注意"int"是将输入的字符串形式转换为整型数据 return 'Post %d' % post_id
静态文件放在 static
目录中,模板文件放在templates
目录下。
from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/hello') @app.route('/hello/<mypara>') def hello_world(mypara=None): return render_template('myhello.html',yourcontext=mypara) if __name__ == '__main__': app.run()
这个py文件有个templates文件夹,里面有一个myhello.html
内容如下
<!doctype html> <title>Hello from Flask</title> {% if yourcontext %} <h1>Hello {{ yourcontext }}!</h1> {% else %} <h1>Hello World!</h1> {% endif %}
yourcontext字符串会替代相关。
一个简单登录网页
本例子效果如下
用户名和密码都正确(tianao)返回
Hello tianao!
否则返回
Hello Invalid username/password!
一共三个文件。主要的py文件,templates目录下的hello.html ,login.html
from flask import Flask
from flask import request
from flask import render_template
app = Flask(__name__)
@app.route('/login', methods=['POST', 'GET'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] == 'tianao' and request.form['password'] == 'tianao':
return render_template('hello.html', name=request.form['username'])
else:
error = 'Invalid username/password'
return render_template('login.html', error=error)
if __name__ == '__main__':
app.run()
hello.html
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
login.html
<!doctype html>
<title>Login Page</title>
<form action="../login" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="submit" />
</form>
{% if error %}
<h1>Hello {{ error }}!</h1>
{% else %}
<h1>Success!</h1>
{% endif %}