标签归档:Flask

用gunicorn搭建flask运行环境

之前用uwsgi搭建flask环境配置的地方比较多,相对比较复杂,不便小白快速学习(兄弟我只想学个开发的为毛要学这么深的环境部署呀),而且从网上搜了下,在后续使用过程中,有些支持的不够好,可能会有问题,所以就更换成用官方推荐的最简单的搭建方法了,其实搭建环境真没什么技术含量,网上一搜一大堆,不过不好的是很多都是之前的版本了,实际用的时候会有很多因为版本不同导致的问题,对一些新手学习造成很大困惑,白白浪费的个人时间去解决不必要的问题,每个人青春有限呀,所以今天的就是教大家如何搭建flask开发环境的,以下内容本人全部亲测,无任何问题,而起全部用的目前最新版本,另外这篇文章假设你是刚安装好的系统,没有做任何配置,所以从基本的开始:

安装ez_setup.py&pip (用来安装后续使用的python库):

下载:

wget –no-check-certificate https://bootstrap.pypa.io/ez_setup.py

wget –no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196

运行

#python ez_setup.py

安装pip:

#tar -zxvf pip-7.1.2.tar,gz

#cd pip-7.1.2

#python setup.py install

安装flask 库:

#pip install Flask

安装nginx:

下载:

#wget http://nginx.org/download/nginx-1.9.6.tar.gz

#下载安装nginx依赖包

#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz

#wget http://zlib.net/zlib-1.2.8.tar.gz

以上两个包安装命令一样,都是:

#./configure

#make

#make install

安装ssl:

#wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

#./config

#make

#make install

 

Nginx安装:

 

–with-http_stub_status_module 可以用来启用Nginx的NginxStatus功能,以监控Nginx的当前状态

好了,到这我自己以为搞定了,结果启动报错(NND,我就知道不能这么容易),根据错误信息应该是包没找到,所以接着敲:

#cd lib64/

#ln -s libpcre.so.0.0.1 libpcre.so.1

以上命令搞定,启动不报错了,测试配置文件:

#/usr/local/nginx/sbin/nginx –t

#/usr/local/nginx/sbin/nginx 启动,访问页面如果出现nginx页面就表示成功安装,接下来我们要关闭nginx,因为我们还没配置跟gunicorn结合呢。

#kill -QUIT 10964          关闭

修改配置文件,打开nginx.conf,修改如下:

 

然后我们该安装gunicorn了,有了pip一切都简单了:

#pip install gunicorn

启动,默认端口8000

#gunicorn index:app        #index是我写的一个py文件

启动nginx:

#/usr/local/nginx/sbin/nginx

访问,应该会显示你index视图函数返回的内容。

关于gunicorn其它启动方式补充:

gunicorn 指定线程和端口启动(4线程80001端口):

gunicorn -w 4 -b 10.1.1.8:8001 index:app

gunicorn支持配置文件启动:

gunicorn –config gunicorn.conf app:app

gunicorn.conf内容:

 

全部OK了,如果你是这个文章一步一步来完成的,基本的环境肯定就没问题了,安心体验写代码的乐趣吧。

注:所有命令前的#号表示,这是root下执行,表示提示符。

 

Flask 安装入门

Flask 用pip 或easy_install很容易的安装的全局下,但我们更期望我们的使用  virtualenv.环境,这样我们的应用就跟全局python分割开来,这个分割的环境能把让我们建立多个应用项目和多个不同的python版本,包括一些依赖关系报,virtualenv能实现在不同版本下的开发你的应用。

如何做:

我们首先要安装virtualenv,用pip,然后创建my_flask_env目录,我们创建,命令如下:

现在我们进入my_flask_env文件加,我们将运行如下命令:

这样将激活我们环境变量,现在我们能做任何事情在这个环境下,不会受任何其他python环境影响。

如何工作:

到现在,我们用pip 去安装Flask ,顾名思义,安装Flask包就跟安装python包一样,如果我们看安装的过程,我们将看到有多少包被安装,以下是安装Flask包安装过程:

注:前面对-U 参数表示是升级安装,这将覆盖存在的Flask 版本(如果有)用最新的版本。

如果我们仔细注意,一共会有5个包被安装,他们是flask, Werkzeug,Jinja2, itsdangerous, 和markupsafe.这个是Flask依赖的,如果缺失,Flask将不能工作。

更多内容:

为使我们工作更加容易,我们可以安装virtualenvwrapper,,他是封装virtualenv,使得处理多个virtualenv非常容易,记住virtualenvwrapper应该被安装在全局中,任何不活跃的virtualenv可能仍然被激活,要关闭它,可以用这个命令:

当然,如你每有在全局安装软件的权限,在这个情况下,切换到超级用户下或用sudo安装。

用安装virtualenvwrapper可以用如下命令:

 

在上面命令,我们安装了virtualenvwrapper,并创建了一个环境目录变量WORKON_HOME,,并提供了路径,这是作为我们主目录所有使用virtualenvwrapper创建的虚拟环境,安装Flask,用如下命令:

禁用一个虚拟环境,用命令:‘

激活现有的virtualenvwrapper,我们运行命令:

参考:

https://pypi.python.org/pypi/virtualenv

https://pypi.python.org/pypi/virtualenvwrapper

https://pypi.python.org/pypi/Flask

https://pypi.python.org/pypi/Werkzeug

https://pypi.python.org/pypi/Jinja2

https://pypi.python.org/pypi/itsdangerous

https://pypi.python.org/pypi/MarkupSafe

 

flask开发小项目

最近工作因为要计算一些数据,为方便自己查看,就用flask写了小项目(叫项目其实都不好意思,其实就是一个小小功能),主要功能是根据一些机器sn去查询每台机器的费用情况,在这个过程中发现flask还真非常好用,很适合入门学习,今天就从头开始讲起,具体如何使用,本次我用的数据库是sqlite3,sqlite3是是pyhton标准库模块,调用起来比较方便,同时做些小型项目也足够了,如果要转到其他数据库上也很方便,废话少说,咱们还是开始咱们今天的愉快旅程:

1、创建数据库库,我自己拿到的是excle表格,作为原始数据要入到库里,因为sqlite无法直接导入excel表,所以我们要做一个小小的改动,把表格转换成csv格式,然后就可以了:  打开excel表格,点击文件—另存为—选择csv格式,点保存,这个表就是csv格式了,同时为了让sqlite支持中文,还要做一个小操作,默认你导入到sqlite3中是显示不了中文的,点击文件,然后右键–选择记事本打开,在保存处选择utf-8编码,然后我们的原始数据就算是弄好了,下一步导入到sqlite中,在导入前先要建立一个初始化脚本init_db.sql,内容如下:

建库:

这样就库就建好了,接下来导入数据:

这样所有的数据就全部建好了,我们数据方面的工作就到此结束了,接下来进入我们代码环节。

2、第二部分,flask主角上场,在正式进入代码前,我们先对 这个小功能的目录结做一个简单介绍,如下:

├── query_sn
│   ├── static
│   │   ├──style.css
│   │  
│   │  
│   ├── templates
│           │           │——cal.html
 |           │           │ ——show_pro.html
│           ├── cal.py
│   └── sndb

每个文件我介绍下,静态文件放在static中,模板文件放在templates中,cal.html放的是要查下的结果,show_pro.html展示的是分类结果,cal.py是主程序文件,包括数据库的链接,视图函数等,首先我们来看cal.py这个文件内容:

代码中数据库链接部分不细说了,从视图函数开始,calmo() 这个函数主要是从表单中获取用户输入,然后计算结果,再返回给用户,render_template是将结果渲染,

show_pro()视图函数展示所有分类结果,@app.route是装饰器, flask自带的,用户表示用户输入的url具体由那个视图函数做处理。

接下来看模板内容cal.html:

show_pro.html内容:

跳转和返回我用的绝对地址,大家写的时候不一定这么做,模板内容也都非常简单,什么继承、宏什么都都没用到,结合视图函数就很容易理解,基本思想是视图函数传过来的数据,由模板进行展示。

写到这基本就没有了,静态文件我就不贴了,因为我是用的其它站点的css,大家也可以上网上自己找喜欢的样式,好了,这篇就到这里了,算是学习flask的开门篇,另外自己也在学习中,非常欢迎志同道合的朋友一起研究学习,感谢观看这篇文章。