Flask是一个轻量级的Python Web框架,它可以帮助开发者快速搭建Web应用。Flask的核心思想是“小而全”,它不会像Django那样把所有的功能都集成在一起,而是将所有的功能都分散到各个独立的组件中,使得开发者可以根据自己的需要来选择合适的组件。
要搭建一个Flask应用,首先需要安装Flask。在Linux上可以使用pip命令来安装:
$ pip install flask
安装完成后,就可以开始编写代码了。Flask应用的入口文件是app.py,在这个文件中我们需要导入Flask并创建一个app对象:
from flask import Flask app = Flask(__name__) # 创建一个app对象
然后我们就可以使用@app.route装饰器来注册URL处理函数了。例如:
@app.route('/') # 注册URL处理函数 def index(): # URL处理函数 return 'Hello World!'
上面代码中@app.route('/')表示当浏览器请求URL时,就会执行index()函数。index()函数返回字符串'Hello World!'作为HTTP响应内容。最后我们还需要在末尾加上如下代码来启动Web服务器:
if __name__ == '__main__': # 启动Web服务器 app.run()
运行上面代码之后,Web服务器就会在本地监听5000端口。此时我们打开浏览器并访问http://localhost:5000/ ,就能看到浏览器显示'Hello World!'字样了。
当然搭建一个Flask应用不止上面这么简单,你还可以使用Flask-SQLAlchemy、Flask-WTF、Jinja2、Bootstrap4 等工具来帮助你快速开发Web应用。例如你想使用SQLAlchemy来操作MySQL数据库:
from flask_sqlalchemy import SQLAlchemy # 导入SQLAlchemy db = SQLAlchemy(app) # 创建db对象
然后你就可以使用db对象来创建Model、执行SQL语句了。总之Flask是一个很好的Python Web开发工具包,它能够帮助你快速开发出优雅、易于部署、易于扩展的Web应用。
url_for()函数对于动态构建特定函数的URL非常有用。
url_for()函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分。
以下脚本演示了如何使用url_for()函数:
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route("/admin")
def hello_admin():
return "Hello Admin"
@app.route("/guest/<guest>")
def hello_guest(guest):
return "Hello %s as Guest" % guest
@app.route("/user/<name>")
def hello_user(name):
if name =="admin":
return redirect(url_for("hello_admin"))
else:
return redirect(url_for("hello_guest", guest = name))
if __name__ == "__main__":
app.run(debug = True)
上述脚本有一个函数hello_user(name),它接受来自URL的参数的值。
hello_user()函数检查接收的参数是否与"admin"匹配。
如果匹配,则使用url_for()将应用程序重定向到hello_admin()函数,否则重定向到将接收的参数作为guest参数传递给它的hello_guest()函数。
保存上面的代码并从Python shell运行。
打开浏览器并输入URL - http://localhost:5000/user/admin
浏览器中的应用程序响应是:
Hello Admin
在浏览器中输入以下URL - http://localhost:5000/user/mvl
应用程序响应现在更改为:
Hello mvl as Guest
缓存系统需要少量的设置。也就是说,你必须告诉它你的缓存数据应该放在哪里 —— 是在数据库中,还是在文件系统上,或者直接放在...
JRadioButtonMenuItem类表示可以包含在菜单中的复选框。选中菜单中的复选框可将控件的状态从打开更改为关闭或从关闭更改为打开。...
现在我们将应用简单的例子来一步一步教你如何使用 Junit。JUnit的一些注意事项:测试方法必须使用 @Test 修饰测试方法必须使用 p...
该功能依赖p6spy组件,完美的输出打印SQL及执行时长3.1.0以上版本示例工程:mybatis-plus-sample-crudp6spy依赖引入Maven:d...
MybatisX是一款基于IDEA的快速开发插件,为效率而生。安装方法:打开IDEA,进入File-Settings-Plugins-BrowseRepositories,输入...
if使用动态SQL最常见情景是根据条件包含where子句的一部分。比如:select id="findActiveBlogWithTitleLike" resu...
当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档。作为一个XML文档,它仅仅只是一堆文本而...