Flask是一个使用Python编写的轻量级Web应用框架。

一、安装Flask

以管理员身份,打开命令提示符窗口,输入下面命令

  1. py -3 -m pip install flask

这个命令会连接到PyPI网站下载和安装Flask模块,以及Flask依赖的几个模块:Werkzeug、MarkupSafe、Jinja2、itsdangerous、click。
安装完成后,在命令提示符窗口最后部分可以看到:

  1. Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, click, flask
  2. Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 flask-1.0.3 itsdangerous-1.1.0

二、创建一个hello world的最小Web应用

1、创建一个hello.py,内容如下

  1. #导入flask模块的Flask类
  2. from flask import Flask
  3.  
  4. #__name__为当前活动模块的名称
  5. app = Flask(__name__)
  6.  
  7. #设置路由
  8. @app.route('/')
  9. def hello() -> str:
  10. return 'Hello World!'
  11.  
  12. """run()有3个可选参数
  13. host 主机,默认为127.0.0.1
  14. port 端口号,默认5000
  15. debug 是否开启调试模式,默认为False,如设为True则修改代码会自动重启
  16. """
  17. app.run()

在命令提示符窗口中定位到hello.py所在目录,并执行命令py -3 hello.py

  1. D:\projects\python>py -3 hello.py
  2. * Serving Flask app "hello" (lazy loading)
  3. * Environment: production
  4. WARNING: This is a development server. Do not use it in a production deployment.
  5. Use a production WSGI server instead.
  6. * Debug mode: off
  7. * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

表示已经启动了一个Web应用,调试模式未开启,地址为http://127.0.0.1:5000,按CTRL+C可以退出Web应用。

3、在浏览器输入http://127.0.0.1:5000
可看到浏览器显示Hello World!
同时在刚才命令提示符窗口可看到
127.0.0.1 - - [23/Jun/2019 09:31:55] "GET / HTTP/1.1" 200 -

三、路由配置

在URL和函数之间建立联系的操作被称之为路由。
路由支持动态名称,规则如下:

  1. 1.<id> :默认接受的类型是str
  2. 2.<string:id> :指定id的类型为str,不能包含路径分隔符/
  3. 3.<int:id> :指定的id类型是整数
  4. 4.<float:id> : 指定id的类型为浮点数(四舍五入,且不能接收整数类型)
  5. 5.<path:path1> : 指定接收的path为任何非空字符串,可包含路径分隔符/

使用例子:

  1. from flask import Flask
  2.  
  3. app = Flask(__name__)
  4.  
  5. @app.route('/getStr/<id>')
  6. def getStr(id) -> str:
  7. """匹配str类型的id值,如/getStr/1 """
  8. return 'id: %s' %id
  9.  
  10. @app.route('/getInt/<int:id>')
  11. def getInt(id) -> str:
  12. """匹配int类型的id值,如/getInt/1 """
  13. return 'id: %d' %id
  14.  
  15. @app.route('/getFloat/<float:id>')
  16. def getFloat(id) -> str:
  17. """匹配float类型的id值,如/getFloat/1.053 """
  18. return 'id: %.2f' %id
  19.  
  20. @app.route('/getPath/<path:path>')
  21. def getPath(path) -> str:
  22. """匹配非空字符,一般匹配url路径值,如/getPath/test/1 """
  23. return 'path: %s' %path
  24.  
  25. app.run(debug = True)

使用Flask构建一个Web应用的更多相关文章

  1. Eclipse的maven构建一个web项目,以构建SpringMVC项目为例

    http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...

  2. 使用maven构建一个web项目

                          使用maven构建一个web项目     首先建立一个maven项目(关于环境配置上节有详细过程): 1)-->右键new,-->project ...

  3. 使用maven命令终端构建一个web项目及发布该项目

    构建环境: maven版本:3.3.9 系统平台:Windows7 x64 JDK版本:1.7 构建步骤: 1.打开maven安装目录,在地址栏输入cmd进入命令窗口 2.输入命令mvn archet ...

  4. maven 构建一个web项目

    maven已经大型的Java项目的管理工具,其功能非常强大,这里简单总结一下maven构建web项目的过程.本文介绍的是集成环境下的maven构建web项目. 一.准备 1.安装maven. 2.把m ...

  5. jmeter 构建一个Web测试计划

    添加用户 第一步你想做的每一个JMeter测试计划是添加一个 线程组 元素. 线程组告诉 JMeter的用户数量你想模拟,用户应该发送的次数 请求,请求他们应该送多少. 继续添加ThreadGroup ...

  6. Python 6 -- 构建一个Web应用

    用Flask Web框架,实现浏览器页面交互.在此之前需要了解web的基本工作流程,可参照https://blog.csdn.net/m0_37466453/article/details/72752 ...

  7. 【springBoot】之快速构建一个web项目

    基于maven,首先看pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifact ...

  8. 从零构建一个简单的 Python Web框架

    为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...

  9. SharePoint Framework 构建你的第一个web部件(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇接上一讲,介绍一下web部件项目中的代码. 下面首先列举一下项目中的一些关键文件. Web部件类 HelloWorldWebPa ...

随机推荐

  1. Python:多态、协议和鸭子类型

    多态 问起面向对象的三大特性,几乎每个人都能对答如流:封装.继承.多态.今天我们就要来说一说 Python 中的多态. 所谓多态:就是指一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同 ...

  2. oracle产销存的写法

    with TEMP as (select sum(MMT.TRANSACTION_QUANTITY) QTY_QC, MMT.INVENTORY_ITEM_ID --,CAH.Legal_Entity ...

  3. android笔记--Intent和IntentFilter详解

    本文转载自:https://www.cnblogs.com/liushengjie/archive/2012/08/30/2663066.html 本文转载自:https://www.cnblogs. ...

  4. python升级带来的yum异常(解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:)

    解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 错误: 原因: 这是因为yum采用python作为命令解 ...

  5. 关于xshell连接limux界面按退格键不正常的问题

    这个问题通过修改xshell终端属性可以解决,步骤如下: "文件" -> "属性" -> "终端" -> "键盘 ...

  6. 2019.10.02模拟赛T3

    题目大意: 设$S(n,m)$为第二类斯特林数,$F_i$表示斐波那契数列第$i$项. 给定$n,R,K$,求$\sum\limits_{i=1}^{n}(\sum\limits_{m=1}^{R}F ...

  7. C语言中,关于排序的问题(输入n个数,输出最大的那个)

    int n,max=0,t; scanf("%d",&n); int a[n],i,k;  //这个a[n]必须要在输入n的值之后才能定义,不然定义不成. for(i=1; ...

  8. spring+eureka+zuul

    最近在看一个关于spring+eureka+zuul的教学视频,终于明白了eureka是用于提供服务注册和发现的service,通过eureka各个service可以知道其他service,这样就隔离 ...

  9. js判断浏览器是否安装或启用了flash的方法总结

    目录 # js判断浏览器是否安装或启用了flash的方法 # chrome浏览器启用flash插件的方法 # 参考 # js判断浏览器是否安装或启用了flash的方法 在传统浏览器,可以使用windo ...

  10. PHP递归函数return返回null的问题

    前段时间在写递归函数的时候碰到个问题,返回值一直为null,这里记录一下. 写个小例子: /** * @param $i * @return mixed */ function recursion($ ...