以前只整过js的后端,这次网安平台实践大作业打算用python写后端,于是赶紧滚过来学学flask
简介与安装
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。
Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。
安装直接pip install flask
就行,如果害怕环境乱了,建议用anaconda或者virtualenv
我win下的环境已经乱的可以了,懒得搞了(
安装完成后可以用python运行下面的代码试试
from flask import Flask
app = Flask(__name__) # Flask函数接收参数__name__,指向了程序所在的包,即Flask将在当前模块运行
@app.route("/") # route()是一个装饰器,它会进行路由匹配,将请求的url映射到函数上。这里'/'与hello_world进行了绑定
def hello_world():
return "Hello, World!"
if __name__ == '__main__':
app.run() # run方法启动了web服务器,默认是127.0.0.1:5000
能看到这个页面就安装胜利了
顺便讲一下上面代码中的run(),其参数是app.run(host, port, debug, options)
- host是将要监听的域名,默认为localhost(127.0.0.1),设置为0.0.0.0就可以在外部服务器使用
- port是监听的端口,默认5000
- debug是提供调试信息,默认为false
- options是要转发到底层的Werkzeug服务器.
需要注意的一点,根据官方文档,尽管交互式调试器在允许 fork 的环境中无法正常使用(也即在生产服务器上正常使用几乎是不可能的),但它依然允许执行任意代码。这使它成为一 个巨大的安全隐患,因此它绝对不能用于生产环境 。
路由
Flask中的路由是指用户请求的URL与视图函数之间的映射,现代Web框架使用路由技术来帮助用户记住应用程序URL,可以直接访问所需的页面,而无需从主页导航。
@app.route('/hello')
def hello_world():
return "Hello, World!"
这里,URL '/hello' 规则绑定到了hello_world()
,如果用户访问localhost:5000/hello,则hello_world()
的输出将在浏览器中体现
另外,application对象的add_url_rule()
也可将URL与函数绑定
def hello_world():
return "Hello, World!"
app.add_url_rule('/', 'hello', hello_world)
语法
向规则参数添加变量,可以动态构建URL,变量记为<variable_name>
举个例子
from flask import Flask
app = Flask(__name__)
@app.route("/hello/<name>")
def hello_world(name):
return "Hello, %s" % name
app.run()
route()
的URL里加入了/hello_world()
函数内
看一下效果
大概来说这个