用的是树莓派3B型
系统用的是raspbian
系统自带nginx,我就没有下载。
开始
1-> 在linux下部署flask集成框架,这是一个小型框架适合初学者学习。
以下命令要在root权限下进行
Sudo apt-get install virtualenv ———>virtualenv这个模块提供个个项目的独立化,单一项目非必需。
Sudo apt-get install flask ———->flask 这个就不废话了。
2-> 在linux下部署nginx服务器,具有反向代理的能力,作为负载均衡服务器。
以下命令要在root权限下进行
Sudo apt-get install nginx
Sudo /etc/init.d/nginx start ———->开启nginx服务器
Nginx只是一个提供静态文件访问的服务器,不能直接执行托管python应用,uWSGI作为Web服务器接口,为nginx和python应用提供交互服务。
3->在linux下部署uWSGI服务器,提供交互服务
已下命令要在root 权限下进行
Sudo apt-get install uwsgi
安装过程到此结束。
执行
1-> 创建一个Web.py的应用。
Import flask from Flask
App=Flask(__name__)
@app.route(‘/’)
Def hello():
Return (“hello,world”)
App.run(host=’127.0.0.1’,port=5000)
以下命令要在root权限下进行
#python Web.py
我们在地址栏里边输入127.0.0.1:5000
可以看到hello,world。
2->配置Nginx
以下命令要在root权限下进行
Sudo rm /etc/nginx/sites-enabled/default
———–>删除nginx默认的配置文件
———–>注意:如果你安装了其他版本的Nginx,默认配置文件可能在/etc/nginx/conf.d 文件夹下。
创建一个nginx配置文件
Mkdir -p /var/www/Web/
Cd /var/www/Web/
Touch Web_nginx.conf
Nano Web_nginx.conf
写入如下内容
/*
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location /static {
alias /var/www/Web/static;
}
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000 ;
}
}
*/
将刚建立的配置文件使用符号链接到Nginx配置文件文件夹中,重启Nginx:
Sudo ln -s /var/www/Web/Web_nginx.conf /etc/nginx/conf.d/
Sudo /etc/init.d/nginx restart
3->配置uwgsi
由于在Web_nginx.conf中有一句uwsgi_pass unix:/var/www/Web/Web_uwsgi.sock
;
Nginx和python是通过Web_uwsgi.sock来交互的。
以下命令要在root权限下进行
创建Web_uwsgi.ini配置文件
Touch Web_uwsgi.ini
Nano Web_uwsgi.ini
写入如下内容
/*
[uwsgi]
socket = 127.0.0.1:5000 #注: 指定某个固定端口 表示和Nginx通信的地址和端口,和 Nginx配置里的uwsgi_pass一致。
processes = 4 #注:跑几个进程,这里用4个进程
threads = 2 #注:每个进程的线程数
master = true
pythonpath = /var/www/Web
module = raspberry#注:表示项目启动模块,如上例为raspberry.py,这里就为raspberry
callable = app#注:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所 以这里为app
memory-report = true
*/
创建一个日志文件目录
Mkdir -p /var/log/uwsgi
执行uWSGI,用新创建的配置文件作为参数
uwsgi --ini /var/www/Web/Web_uwsgi.ini ————>运行之后会在Web目录下生成Web_uwsgi.sock
到此在linux下配置集成开发环境结束了。谢谢。
部署文件
1->目标在集成环境下部署静态文件
Raspberry.py
from flask import Flask
from flask import render_template #这是一个模板渲染的方法。
App=Flask(__name__,static_url_for=”/var/www/Web”)
@app.route(‘/’)
Def hello():
Return render_template(“index.html”)
If __name__=’__main__’:
App.run(host=’127.0.0.1’,port=5000)
此时是需要在当前文件夹下新建一个 template 和 static
Template文件夹放置需要渲染的模块。
Static 文件夹放置静态文件 例如css,js,jpg……..
Web文件夹的结构图
Web
|
—-static
| |
| —-css
| —-js
| —-layer
| —-dome.html
—-template
| |
| —-index.html
—-raspberry.py
—-Web_nginx.conf
—-Web_uwsgi.ini
每次修改raspberry.py后 你都要重新运行一次Web_uwsgi.ini文件。
每次修改静态文件时不需要重新运行。
命令如下:
Sudo uwsgi --ini /var/www/Web/Web_uwsgi.ini