1 #!/usr/local/bin/python
 2 # coding=utf-8
 3
 4 from flask import Flask
 5 app = Flask(__name__)
 6
 7 @app.route('/')
 8 def hello_world():
 9     return 'Hello World!'
10
11 if __name__ == '__main__':
12     app.run(host='0.0.0.0',port=9000)

第4行,引入Flask类,Flask类实现了一个WSGI应用
第5行,app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__。
    让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。
第7~9行,使用app.route装饰器会将URL和执行的视图函数的关系保存到app.url_map属性上。
    处理URL和视图函数的关系的程序就是路由,这里的视图函数就是hello_world。
第11行,使用这个判断可以保证当其他文件引用这个文件的时候(例如“from hello import app”)不会执行这个判断内的代码,也就是不会执行app.run函数。
第12行,执行app.run就可以启动服务了。默认Flask只监听虚拟机的本地127.0.0.1这个地址,端口为5000。
    而我们对虚拟机做的端口转发端口是9000,所以需要制定host和port参数,0.0.0.0表示监听所有地址,这样就可以在本机访问了。
    服务器启动后,会调用werkzeug.serving.run_simple进入轮询,默认使用单进程单线程的werkzeug.serving.BaseWSGIServer处理请求,
    实际上还是使用标准库BaseHTTPServer.HTTPServer,通过select.select做0.5秒的“while TRUE”的事件轮询。
    当我们访问“http://127.0.0.1:9000/”,通过app.url_map找到注册的“/”这个URL模式,就找到了对应的hello_world函数执行,返回“hello world!”,状态码为200。
    如果访问一个不存在的路径,如访问“http://127.0.0.1:9000/a”,Flask找不到对应的模式,就会向浏览器返回“Not Found”,状态码为404

转载于:https://www.cnblogs.com/xiaojinniu425/p/9438680.html

Flask 框架app = Flask(__name__) 解析相关推荐

  1. 【Python】flask框架学习 flask框架的基本使用

    flask框架是什么? Flask 是一个轻量级的 Web 框架,用于构建 Web 应用程序.它基于 Python 编程语言和 Werkzeug 工具包,提供了简单易用的 API,可以轻松地创建 RE ...

  2. 我爱Flask框架之Flask简介与URL和视图介绍

    一:虚拟环境介绍 黄色部分重点注意 虚拟环境与全局环境: 我们通过pip安装了一个python库,可能在编辑器中不能使用(如:pycharm,vscode-)这是因为: 通过pip安装的库默认一般安装 ...

  3. Flask框架(1.flask概述,Windows配置 virtualenv虚拟环境步骤和路由以及视图函数的定义)

    框架:      软件框架,指的是为了实现某个业界标准或者完成特别基本任务的软件组件规范,也指为了实现某个软件组建规范时,提供规范所要求之基础功能的软件产品.       框架的功能类似于基础设施,提 ...

  4. flask框架_Flask: flask框架是如何实现非阻塞并发的

    写在前面:Flask框架是通过多线程/多进程+阻塞的socket实现非阻塞,其本质是基于python的源库socketserver实现的 前言 认识WSGI协议 认识Werkzeug flask是如何 ...

  5. python安装flask框架_Python Flask框架的安装

    Flask 框架是 Python 中一个比较重要的框架,在开发网站中极具优势,下面进行具体介绍. FIask框架简介 Flask 是当前流行的 Web 网站框架,它是基于 Python 实现的.Fla ...

  6. 【Flask框架】——Flask介绍

  7. Python Flask框架-开发简单博客-项目布局、应用设置

    作者:Eason_LYC 悲观者预言失败,十言九中. 乐观者创造奇迹,一次即可. 一个人的价值,只在于他所拥有的.所以可以不学无术,但不能一无所有! 技术领域:WEB安全.网络攻防 关注WEB安全.网 ...

  8. web开发——Flask框架

      其实我也不是很懂这个东西,但这次做的过程中有了一个简单的了解.还是写一篇总结一下吧!   Flask框架可以做什么?/为什么要用Flask框架?   Flask本身是一个轻量级的web开发框架,在 ...

  9. [python]用flask框架搭建微信公众号的后台

    用flask框架搭建微信公众号的后台 最近用python写了点爬虫,为了要让爬取的数据能够随时显示在我眼前,并实时根据我的指令返回数据.于是采用微信公众号做这个显示窗口,既能发送指令也能显示简单的相关 ...

最新文章

  1. 中国电信换将 三家运营商未来将如何争战
  2. xenserver 管理口显示重复IP的处理方法
  3. 值得收藏!脑科学、脑机接口领域白皮书、研究报告汇总
  4. 又一个 Java 面试神器!
  5. 九、linux文件系统
  6. Linux mysql federated_MySQL的FEDERATED引擎实现类Oracle的DBlink
  7. (一)javascript面向对象:(1)类
  8. HTML5新特性-自定义属性(data-set)
  9. Vertx编程风格:您的反应式Web Companion REST API解释了
  10. python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...
  11. Android应用程序创建桌面快捷方式
  12. C程序中对时间的处理——time库函数详解转
  13. SPEC-RFC3261总述
  14. grumble.js
  15. android 简单对话框实现
  16. linux下好玩的命令
  17. [OpenAirInterface实战-13] :OAI 基站配置文件详解
  18. 【Cad To Excel】CAD中表格到EXCEL的转换
  19. ntag213和215有什么区别_NTAG213、NTAG215和NTAG216NFC标签
  20. Written English-书面-现在完成进行时

热门文章

  1. java 并发demo_《Java并发编程实践》中4.3.5章demo的一个疑问?
  2. mysql查询是否用index_如何查看sql查询是否用到索引(mysql)
  3. python双下划线什么意思_python中几个双下划线用法的含义
  4. 『操作系统』 进程的描述与控制 Part3 管程
  5. 嵌入式基础之----C++
  6. ai伪造论文实验数据_5篇有关AI培训数据的基本论文
  7. libusb开发指南
  8. 买房贷款时为什么银行让客户选等额本息,这是不是个坑?
  9. Detection and Classification of Acoustic Scenes and Events(DCASE2013详细介绍)
  10. 最穷的日子,你是如何熬过来的?