https://linoxide.com/linux-how-to/install-flask-python-ubuntu/

1. prerequisites

> create a new user: sudo adduser bob

> grant admin privileges: sudo usermode -aG sudo bob

2. install components from the ubuntu repositories

  1. sudo apt-get update
  2.  
  3. sudo apt-get install python3-pip python3-dev nginx
  4.  
  5. 3. create python3 virtual environment
  1. sudo pip3 install virtualenv
    > generate a project folder
    > then: mkvirtualenv flask
  2.  
  3. 4. install flask
    > activate flask
    > pip3 install gunicorn flask
  4.  
  5. 5. create a sample app: flaskproject.py
    ~/flaskproject/flaskproject.py
    ##########
    from flask import Flask
    app = Flask(__name__)
  6.  
  7. @app.route("/")
    def greeting():
      return "<h1 style='color:green'>Hello World!</h1>"
  8.  
  9. if __name__ == "__main__":
      app.run(host='0.0.0.0')
    #############
    6. open server
  1. (flaskprojectenv) $ sudo ufw allow 5000
  1. (flaskprojectenv) $ python flaskproject.py
  1. http://0.0.0.0:5000
    then you can get a "Hello world" on the browser
  2.  
  3. 7. create the wsgi entry point:create wsgi.py
  1. ~/flaskproject/wsgi.py
  2. from flaskproject import app
  3.  
  4. if __name__ == "__main__":
  5. app.run()
  6.  
  7. 8. check gunicorn works or not:
    (in the flaskproject folder) > gunicorn --bind 0.0.0.0:5000 wsgi:app
  8.  
  9. 9. create a systemd unit file: allow unbuntu automatically start Gunicorn and serve the Flask application whenever the server boots
    create a unit file ending in .service in /etc/systemd/system folder
    > sudo vim /etc/systemd/system/flaskproject.service
    ###
    [Unit]
    Description=Gunicorn instance to serve flaskproject
    After=network.target
  10.  
  11. [Service]
    User=westmole
    Group=www-data
    WorkingDirectory=/home/westmole/workspace/prj/flaskproject
    Environment="PATH=/home/westmole/workspace/prj/flaskproject/flask/bin"
    ExecStart=/home/westmole/workspace/prj/flaskproject/flask/bin/gunicorn --workers 3 --bind unix:flaskproject.sock -m 007 wsgi:app
  12.  
  13. [Install]
    WantedBy=multi-user.target
    ###
    > group=www-data: Nginx can communicate with Gunicorn processes
    > gunicorn is in the virtualenv of flask
    > --workers 3: 3 worker projcesses
    > -m 007: umask value so the socket file to give access to the owner and group
    > wsgi:app : pass in the WSGI entry point
  14.  
  15. 10. start the gunicorn service and enable it to start at boot:
    > sudo systemctl start flaskproject
    > sudo systemctl enable flaskproject
  16.  
  17. 11. configuring Nginx to proxy request
    Nginx to pass web requests to scoket; create a new server block configuration file in Nginx's 'sites-available' directory
    > sudo vim /etc/nginx/sites-available/flaskproject
  1. server {
  2. listen 80;
  3. server_name server_domain_or_IP;
  4.  
  5. location / {
  6. include proxy_params;
  7. proxy_pass http://unix:/home/bobby/flaskproject/flaskproject.sock;
  8. }
  9. }
  10.  
  11. > sudo ln -s /etc/nginx/sites-available/flaskproject /etc/nginx/sites-enabled
    > sudo nginx -t
    > sudo systemctl restart nginx
    > sudo ufw delete allow 5000
    > sudo ufw allow 'Nginx Full'
  1.  
  1.  
  1.  

python-flask-2 安装及设定 flask的更多相关文章

  1. python 全栈开发,Day119(Flask初识,Render Redirect HttpResponse,request,模板语言 Jinja2,用户登录例子,内置Session)

    一.Flask初识 首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 三大主流Web框架对比 ...

  2. Python 的 Flask 框架安装应用

    Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱採用 Werkzeug ,模板引擎则使用 Jinja2 ,使用 BSD 授权. Flask也被称为 " ...

  3. Flask 学习篇一: 搭建Python虚拟环境,安装flask,并设计RESTful API。

    前些日子,老师给我看了这本书,于是便开始了Flask的学习 GitHub上的大神,于是我也在GitHub上建了一个Flask的项目. 有兴趣可以看看: https://github.com/Silen ...

  4. [Python]安装和运行flask框架

    随着你的 Python 项目越来越多,你会发现不同的项目会需要 不同的版本的 Python 库.同一个 Python 库的不同版本可能不兼容.虚拟环境可以为每一个项目安装独立的 Python 库,这样 ...

  5. python web开发flask框架 安装与环境

    # encoding:utf-8 # 从flask这个框架中导入Flask这个类 from flask import Flask # 初始化一个Flask对象 # Flasks() # 需要传递一个参 ...

  6. Flask简介,安装,demo,快速入门

    1.Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug ...

  7. Python 【web框架】之Flask

    flask 是Python实现的轻量级web框架.没有表单,orm等,但扩展性很好.很多Python web开发者十分喜欢.本篇介绍flask的简单使用及其扩展. 文中示例源码已经传到github:h ...

  8. 安装虚拟环境和Flask

    一.Flask 使用前准备 一. 安装及创建虚拟环境 1. 安装虚拟环境 win + R -> cmd -> pip install virtualenv -> 出现 Success ...

  9. python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)

    昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...

随机推荐

  1. js 推断字符串是否包括某字符串

    var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包括Text字符串'); } ...

  2. A*(也叫A star, A星)寻路算法Java版

    寻路算法有非常多种,A*寻路算法被公觉得最好的寻路算法. 首先要理解什么是A*寻路算法,能够參考这三篇文章: http://www.gamedev.net/page/resources/_/techn ...

  3. WPF中控件TextBlock使用(简单)

    TextBlock主要用来显示文字.比方: <TextBlock Name="txtBlockOutpuMessage"   Text="hello" / ...

  4. B1816 扑克牌 二分答案 + 贪心

    这个题我一开始想到了二分答案,但是去写了另一个算法,用优先队列直接模拟,最后GG了...因为我没考虑每个套牌只能有一个joker...尴尬. 后来二分答案,然后暴力验证就行了. 题干: Descrip ...

  5. z-index 、层叠上下文、层叠级别、z-index失效

    一.z-index z-index默认处于非激活状态,只有定位元素(即position:relative/absolute/fixed时)才会被激活. z-index与层叠上下文关联. 当z-inde ...

  6. Java并发基础知识点详解

    1.synchronized与Lock区别 父类有synchtonized,子类调用父类的同步方法,是没办法同步的,因为synchronized不是修饰符,不会被继承下来. synchronized ...

  7. [转]RDLC 动态列

    本文转自:http://blog.csdn.net/luochengbang/article/details/9964551 很久没有写博客了,关于动态列,国内很少资料有介绍动态列的,所想写点心得给哥 ...

  8. CentOS7 搭建Kafka(三)工具篇

    CentOS7 搭建Kafka(三)工具篇 做为一名懒人,自然不喜欢敲那些命令,一个是容易出错,另外一个是懒得记,能有个工具就最好了,一查还挺多,我们用个最主流的Kafka Manager Kafka ...

  9. struts2拦截器(四)

    struts2拦截器原理: 当请求action时,struts2会查找配置文件,并根据配置实例化相对的 拦截器对象,然后串成一个列表,然后一个一个的调用列表中的拦截器. 比如:某些页面必须登录才可以访 ...

  10. 查找索引/ie滤镜/动态背景/属性attr和prop

    1. 查找索引 查找当前元素在指定范围内的索引序号,示例: $('.right_newestState_con').find('em').index($(this)); 2. ie滤镜 利用ie的私有 ...