首先我们安装好flask,这里有待补充。

初始开发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from flask import Flask
from flask import url_for
from markupsafe import escape
#用户输入会变成恶意代码,Markupsafe可以进行转义处理,对name变量名
app = Flask(__name__)
@app.route('/home')
@app.route('/')
def hello():
# return 'Welcome to My watchlist'
return '<h1>Hello Totoro!<h1><img src="http://helloflask.com/totoro.gif">'
@app.route('/user/<name>')
def user_page(name):
# return 'User page'
return f'User: {escape(name)}'#比如把name中出现的<转换成&lt;
@app.route('/test')
def test_url_for():
print(url_for('hello'))#也就是生成hello函数对应的url 输出/
#下面生成包含url变量的url
print(url_for('user_page', name='greyli'))#显然调用了user_page函数,参数name变为greyli
#所以name传到url上,输出url
print(url_for('user_page', name='peter'))
#输出url /user/peter
print(url_for('test_url_for'))
#显然输出/test
print(url_for('test_url_for'), num=2)#这里显然不需要参数2,输多了,作为get传参回去
#输出/test/?num=2
return 'Test page'

进阶

我们可以提交到github,先在github上创建一个仓库,这里有待补充。

之后在项目的目录下打开shell,用git进行上传

1
2
3
git add .
git commit -m "Add minimal home page"
git push

对于url变量,Flask支持在URL规则字符串里对变量设置处理器,对变量进行预处理。比如/user/<int:number>会将URL中的number部分转换成整形。

模板

首先创建模板文件夹

1
mkdir templates

在其中创建一个index.html文件,用jinjia2写模板。

jinjia2基本语法

1
2
3
4
5
6
7
8
<h1>
{{ username }}的个人主页
</h1>
{% if bio %}
<p>{{ bio }}</p>{#锁进只是为了可读性,不是必须#}
{% else if %}
<p>自我介绍。</p>
{% end if %}

可以看到都是这种语法方式。

{{}}用来标记变量。

{%%}用来标记语句。

``用来写注释。