开篇
个人工作中需要用到flask,所以特地搭建了用一下,熟悉操作
一、centos云服务器环境下
falsk作为一个python的轻量级的web框架,基本上相当于一个内核,各种功能都需要扩展第三方来实现,比如数据库操作需要用到flask-sqlalchemy,引入脚本需要用到flask-script,本地化时间需要用到flask-monent。。。。。。就这点来看,它就区别于Django的功能齐全,因为flask是一个自定义式的。啥?我这个刚准备熟悉框架的人为什么那么熟练?查资料啊!
安装
因为flask是python的一个框架,而python又是使用包来管理的,所以你可以直接用pip来下载安装,然后在代码中引入使用即可。这样比较,老本行的c/c++的确是很不方便啊,虽然它志不在此。
pip3 install flask
因为我的云服务器配置了python2和python3,但我没有把pip管理的链接都连成pip,所以使用还是pip3,安装完以后可以查看一下安装列表(pip3 list)。
简单的hello, world
我们的测试都是经典的hello, world嘛,这次也不例外。
from flask import Flask
app = Flask(__name__)
#设置flask定时任务
@app.route('/hello')
def hello():
return "Hello, world."
if __name__ == '__main__':
#设置调试模式,实际使用不需要
app.debug = True
app.run()
运行结果:
[root@centos web_test]# python3 flask_test.py
* Serving Flask app 'flask_test' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 126-917-774
然后我们另开一个连接,用curl访问一下
#作为客户端的访问
[root@centos ~]# curl http://localhost:5000/hello
Hello, world.[root@centos ~]#
#作为服务端的响应记录
127.0.0.1 - - [27/Feb/2022 10:48:31] "GET / HTTP/1.1" 200 -
首先来说一下上面代码的作用吧,上面就是引用了flask模块中的Flask类,然后实例化,接下来设定路由,其实就是针对http访问的url格式来确定响应,比如我上面路由设定函数hello的参数为'/hello',url格式就是"http://localhost:5000/hello"或者"http://127.0.0.1:5000/hello",你问我为什么是本地访问?我也不知道哇,云服务器的访问规则我都开了,对应端口的TCP访问应该是ok的呀,真的是。估计是和现在所在的开发者模式有关。
二、windows下的安装使用
在windows下的安装使用和linux下没有什么区别,所以这里就给一些结果对照就行。
pip install flask
因为是在windows下,所以结果的查看就可以很直观了,直接浏览器打开http://localhost:5000/hello即可
然后我们的服务端运行结果是这样的:
PS C:\Users\abaaba\Desktop> python test.py
* Serving Flask app 'test' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 421-642-904
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [27/Feb/2022 11:39:16] "GET /hello HTTP/1.1" 200 -
127.0.0.1 - - [27/Feb/2022 11:39:16] "GET /favicon.ico HTTP/1.1" 404 -
需要注意的是,常说服务端和客户端,其实它们并不代表主机实体,而是进程实体,同一台主机可以作为提供各种服务的服务端也可以作为享受各种服务的客户端。