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

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

安装开发环境

下载Python win版安装包

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

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

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

为什么使用virtualenv?

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

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

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

安装virtualenv

pip install virtualenvwrapper-win

创建一个虚拟环境 flask-env

虚拟环境的基本操作

#查看当前的虚拟环境
workon #进入指定的虚拟环境,比如flask-env
workon flaks-env #退出虚拟环境
deactivate #删除指定的虚拟环境,比如flask-env
rmvirtaulenv flask-env

虚拟环境基本操作

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

打开Pycharm,创建Flask项目

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

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

my_flask.py

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

更改启动端口

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

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

更改绑定地址

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

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

debug模式

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

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

开启debug模式方法1:

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

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

开启debug模式方法2:

app = Flask(__name__)
app.debug = True

开启debug模式方法3:

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

开启debug模式方法4:

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

DEBUG = True

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

import config
...
app.config.from_object(config)
...

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

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

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

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

配置文件

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

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

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

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

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

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. BZOJ2818 GCD 【莫比乌斯反演】

    2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB Submit: 6826 Solved: 3013 [Submit][Status][Discuss ...

  2. BZOJ3295: [Cqoi2011]动态逆序对 莫队

    这个用莫队做会被卡,但是我还是...... 收获在于树状数组维护后缀和以及双维排序...... 莫队的时间复杂度比想象中的要好一些.... 然而我还是被卡了...... #include<ios ...

  3. [MySQL] explain执行计划解读

    Explain语法 EXPLAIN SELECT …… 变体: 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得 ...

  4. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D

    D. Bear and Two Paths time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  5. Docker Community Edition for CentOS

    Docker CE for CentOS Docker CE for CentOS distribution is the best way to install the Docker platfor ...

  6. React 使用 fetch 请求天气

    中国天气网(http://www.weather.com.cn)提供了查询天气的 API,通过传入城市 id, 可以获得当前城市的天气信息,API 相关信息如下: 规格  描述 主机地址 http:/ ...

  7. POJ 3070 + 51Nod 1242 大斐波那契数取余

    POJ 3070 #include "iostream" #include "cstdio" using namespace std; class matrix ...

  8. 动态规划&字符串:最长公共子串

    还是直接上转移方程: 动规只能解决O(n^2)的最长公共子串问题 使用后缀数组或者SAM可以高效地解决这个问题 所以,对于这个问题,动规的代码就不给出了 直接给出SAM的实现,也为以后学习SAM打下一 ...

  9. 【BZOJ】1708: [Usaco2007 Oct]Money奶牛的硬币

    [算法]DP [题解] 如果每个排列算一种,则令f[i]表示凑成面值为i的方案数,容易推出f[i]+=f[i-a[j]]. 现在是每个组合才算一种,令f[i][j]第二维表示只使用前j种面值,f[i] ...

  10. 打印python的堆栈stack

    import sys def pstack(depth = 0): frame = sys._getframe(depth) cnt = 0 while frame: print "###& ...