Flask是流行的python web框架...(* ̄︶ ̄)

零基础到企业级论坛实战,人生苦短,我用python,开启FLask之旅吧...

安装开发环境

下载Python win版安装包

双击运行,选择自定义安装,勾选Add Python 3.6 to PATH

安装完成之后,进入cmd窗口,输入python即可进入python环境

这里我们使用virtualenv虚拟开发环境

为什么使用virtualenv?

  1、使用不同应用开发环境独立开发

  2、环境升级不影响其他应用,也不会影响全局的Python环境,虚拟环境就是讲全局环境做一个私有的复制

  3、它可以防止系统中出现包管理混乱和版本的冲突

安装virtualenv

  1. pip install virtualenvwrapper-win

创建一个虚拟环境 flask-env

虚拟环境的基本操作

  1. #查看当前的虚拟环境
  2. workon
  3.  
  4. #进入指定的虚拟环境,比如flask-env
  5. workon flaks-env
  6.  
  7. #退出虚拟环境
  8. deactivate
  9.  
  10. #删除指定的虚拟环境,比如flask-env
  11. rmvirtaulenv flask-env

虚拟环境基本操作

本地磁盘D新建项目目录:my_flask

打开Pycharm,创建Flask项目

创建完成后,my_flask.py是这个项目的主程序

  1. #从flask这个包中导入Flask类,这个类时核心项目
  2. from flask import Flask
  3.  
  4. #创建一个Flask对象,传递__name__参数
  5. #__name__参数作用
  6. #1. 可以规定模板和静态文件的查找路径
  7. #2. 以后一些插件报错了,可以通过这个参数找到具体的错误位置
  8. app = Flask(__name__)
  9.  
  10. #@app.route是一个装饰器
  11. #@app.route('/')就是将url中的/映射到hello_world这个视图函数上面
  12. #当你访问网站/目录的时候,会执行hello_world函数,然后这个函数的返回值给浏览器
  13. @app.route('/')
  14. def hello_world():
  15. return 'Hello World!'
  16.  
  17. #如果这个文件是作为一个主文件运行,那么执行app.run()方法,即启动网站
  18. #app.run()是flask中的一个测试应用服务器
  19. if __name__ == '__main__':
  20. app.run()

my_flask.py

使用pycharm启动项目:Run-->Run...-->my_flask, 默认启动的端口是5000,通过浏览器访问http://127.0.0.1:5000

更改启动端口

如果我们不想使用默认的5000端口,可以给app.run()传递一个port参数,比如8000端口

  1. if __name__ == '__main__':
  2. app.run(port=8000)

更改绑定地址

默认只绑定了127.0.0.1,如果我们想让局域网其他电脑也能够方法,就需要绑定到本机其他ip,我们可以绑定0.0.0.0

  1. if __name__ == '__main__':
  2. app.run(host='0.0.0.0')

debug模式

在开发过程中,我们需要开启debug模式,如果出现异常,浏览器会显示错误信息及位置,方便开发者调试

开启debug模式还有个好处就是:当我们修改完代码,按ctrl + s保存代码后会自动重启服务

开启debug模式方法1:

在app.run()方法添加参数debug=True

  1. if __name__ == '__main__':
  2. app.run(debug=True)

开启debug模式方法2:

  1. app = Flask(__name__)
  2. app.debug = True

开启debug模式方法3:

  1. app = Flask(__name__)
  2. app.config.update(DEBUG=True)

开启debug模式方法4:

在项目下面单数创建一个配置文件config.py,里面就可以写配置信息了,这里我只需要写一行

  1. DEBUG = True

然后我们需要在主程序my_flask.py中导入这个config,并且配置使用它来作为配置

  1. import config
  2. ...
  3. app.config.from_object(config)
  4. ...

我们来故意写个错误的代码

  1. @app.route('/')
  2. def hello_world():
  3. a = 10
  4. b = 0
  5. c = a /b #0是不能被作为除数的,这样写肯定会报错
  6. return c

如果我们开启了debug模式,浏览器会显示错误原因

如果没有开启debug模式,则是单纯的显示内部服务器错误,这样不利于我们排查

配置文件

配置文件已经在debug模式的第4种方法种提到过得一种,这种也是我喜欢用的

其实还有另外一种方式: 使用app.config.from_pyfile的方式加载配置文件

这种方式不需要import, 直接使用app.config.from_pyfile('config.py')就可以了, 注意这个地方,必须要写文件全名,后缀名不能少!

1、这种方式加载配置,不局限于只能使用py文件,普通的txt文件同样适用

2、这个方式,可以传递silent=True,当这个配置文件没有找到的时候,不会抛出异常

  1. app.config.from_pyfile('config.txt', silent=True)

1、Flask实战第1天:第一个Flask程序的更多相关文章

  1. flask实战-个人博客-使用蓝本模块化程序

    使用蓝本模块化程序 实例化flask提供的blueprint类就创建一个蓝本实例.像程序实例一样,我们可以为蓝本实例注册路由.错误处理函数.上下文处理函数,请求处理函数,甚至是单独的静态文件文件夹和模 ...

  2. 【Centos】【Python】【Flask】阿里云上部署一个 flask 项目

    1. 安装 python3 和 pip3 参考:http://www.cnblogs.com/mqxs/p/8692870.html 2.安装 lnmpa 集成开发环境 参考:http://www.c ...

  3. Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验

    (一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...

  4. 关于一个flask的服务接口实战(flask-migrate,flask-script,SQLAlchemy)

    前言 最近接到一个接收前端请求的需求,需要使用python编写,之前没有写过python,很多技术没有用过,在这里做一个学习记录,如有错误,请不了赐教. Flask Api文档管理 使用Falsk A ...

  5. Flask实战-留言板-安装虚拟环境、使用包组织代码

    Flask实战 留言板 创建项目目录messageboard,从GreyLi的代码中把Pipfile和Pipfile.lock文件拷贝过来,这两个文件中定义了虚拟环境中需要安装的包的信息和位置,进入m ...

  6. 一个Flask运行分析

    当我们安装好Flask环境之后,创建好项目,就会自动生成下面这段代码: from flask import Flask app = Flask(__name__) @app.route('/') de ...

  7. Flask实战第6天:视图函数Response返回值

    视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...

  8. Flask实战-留言板-使用Flask-DebugToolbar调试程序、Flask配置的两种组织形式

    使用Flask-DebugToolbar调试程序 扩展Flask-DebugToolbar提供了一系列调试功能,可以用来查看请求的SQL语句.配置选项.资源加载情况等信息.这些信息在开发时会非常有用. ...

  9. flask实战-留言板-Web程序开发流程

    Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...

随机推荐

  1. Jsp上传组件Smartupload介绍

    <form action="UploadServlet" enctype="multipart/form-data" method="post& ...

  2. BEGIN TRAN;

    USE master Create Database TestDb on Primary ( name='TestDb_data', filename='G:\TempData\Db\TestDb_d ...

  3. 跨域请求json数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 自旋锁、排队自旋锁、MCS锁、CLH锁

    转载自:http://coderbee.net/index.php/concurrent/20131115/577 自旋锁(Spin lock) 自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他 ...

  5. Spring任务调度<task:scheduled-tasks>【含cron参数详解】 (转载)

    Spring内部有一个task是Spring自带的一个设定时间自动任务调度 task使用的时候很方便,但是他能做的东西不如quartz那么的多! 可以使用注解和配置两种方式,配置的方式如下 引入Spr ...

  6. 转:极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法

    转自:极小极大搜索方法.负值最大算法和Alpha-Beta搜索方法 1. 极小极大搜索方法    一般应用在博弈搜索中,比如:围棋,五子棋,象棋等.结果有三种可能:胜利.失败和平局.暴力搜索,如果想通 ...

  7. httpFS访问

    编辑文件httpfs-env.sh 执行sbin/httpfs.sh 执行命令curl -i "http://192.168.1.213:14000/webhdfs/v1?user.name ...

  8. Sass、Ruby、Nodejs、gulp

    1.Sass文件就是普通的文本文件,不过其文件后缀名有两种,一种为“.sass”:另一种为“.scss”.我们一般用“.scss”就好,至于这两种文件扩展名的区别在于“.sass”是Sass语言文件的 ...

  9. shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)

    文本处理三剑客:1.grep  2.sed  3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n  :显示行号:-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用e ...

  10. /usr/bin/expect介绍

    /usr/bin/expect介绍 http://blog.csdn.net/zhu_tianwei/article/details/44180637 概述 我们通过Shell可以实现简单的控制流功能 ...