一、flask框架学习
a.一个最简单的flask应用--hello world
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
将上面这段代码直接在python编译器中执行,或保存为hello.py(或者类似的名字,但不能为flsak.py)文件在cmd中执行,于是我们将得到输出结果: * Running on http://127.0.0.1:5000/ ,现在打开这个网址即可看到一个hello world的问候了.
把app.run()改成app.run(host = '0.0.0.0')即可使你的服务器公开使用,另外改写代码app.run()为app.run(debug = True) 即可启用调试模式,如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。
b.重定向行为
@app.route('/abc/')
def projects():
return 'The abc page'
@app.route('/abcd')
def about():
return 'The abcd page'
第一种情况访问一个不带尾斜线的/abc会被flask重定向到/abc/去,第二种情况访问一个带尾斜线的/abcd/会出现404 not found错误.
c.模板
一个最简单的模板:
from flask import render_template
@app.route('/')
def hello_world():
return render_template('hello.html')
其中hello.html中的内容为:
<head>
<tilte> hello</title>
</head>
<body>
<p>hello world!</p>
</body></html>
运行这段程序将产生跟之前一样的结果.这里要说明的是:hello.html文件要保存到templates文件夹下,templates文件夹的存放目录在py文件目录中.另外模板还支持传入参数,如:
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
此时html中的内容应该为:
html>
<head>
<tilte> hello</title>
</head>
<body>
<p>hello {{name}}!</p>
</body></html>
关于flask的其他内容还在学习中,不过有了这些知识,现在已经可以编写简单的网页了(编写网页这部分内容还要学习html语言),另外需要注意的是,为了使网页有比较美观的布局,我们需要创建css文件来给网页布局,css文件可以保存在static目录下,另外图片也可以放在static目录的img下.有关于css样式的内容也需要我们自己去学习了解.
根据这个网页的风格: http://www.cs.princeton.edu/~blei/publications.html 我也编写了一个简单的网页,下面附上我编写的网页的截图:
网页布局以及风格均模范老师给的上面那个网站,网页内容均从网上收集而来,目前网页还未编写完,处于正在完善阶段...
二、关于stackoverflow
昨天刚把stackoverflow的账号创建好,打开发现是个全英文网站,目前还没有在上面提出问题,不过我觉得自己首先要解决的问题是如何用英语自己的问题给叙述清楚 - - .目前找了两篇关于flask的教程,正在跟着教程学习...
三、Github的学习
在github中以flask为关键词进行搜索,搜出的结果全是英文文档,最后还是选择了用Baidu搜索flask教程.另外本周补充了对异常处理和多线程的学习,以Github搜到的一个程序为例子,以多线程的方式改写了以前那个筛选域名的程序,发现运行速度比单线程确实快了很多.