美文网首页
Flask网站轻松部署到免费主机Heroku(3) - 多平台

Flask网站轻松部署到免费主机Heroku(3) - 多平台

作者: 非梦nj | 来源:发表于2017-09-22 13:28 被阅读799次

    有时你的app应用,会用到多个平台,比如:Python + Node.js

    ref: https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app
    Flask网站轻松部署到免费主机Heroku(2) - 清除数据
    vue2+Flask网站,轻松部署到免费主机Heroku(1)

    HowTo:

    heroku buildpacks --app <App Name>
    === <App Name> Buildpack URL
    heroku/python
    
    heroku buildpacks:set heroku/python
    heroku buildpacks:add --index 1 heroku/nodejs
    # 1 is the first buildpack
    
    

    选择特定的Python版本:
    create runtime.txt file in root dir

    cat runtime.txt
    python-2.7.13
    # or python-3.6.2
    

    Anaconda Jupyter (IPython)

    调试:
    %pdb on

    from IPython.core.debugger import Tracer
    def f1(a, b):
        Tracer()()
        a+=b
        Tracer()()
        return a/b
    
    f1(3, 2)
    

    快捷键:

    • l 显示上下文
    • a(rgs) 打印所有变量
    • b 显示断点
    • n 下一行(step over)
    • s step into
    • u 返回上一级
    • q 退出

    Anaconda

    Conda 支持IPython,集成了主要的科学计算python packages,300多MB,适合懒人下载
    并且方便做环境管理、package管理

    常用命令

    创建虚拟环境:

    conda create --name <环境名字> <安装哪些packages>
    比如,创建一个python3的环境,装好 anaconda标准的packages:
    conda create -n py35 python=3 anaconda

    切换环境

    conda env list

    activate <环境名字>
    deactivate
    conda env export > environment.yml# 导出到文件
    conda env create -f environment.yml

    删除环境

    conda remove --name flowers --all

    在不同的python间切换

    conda search python
    $ conda create -n py27 python=2.7 anaconda
    # 升级Python
    $ conda update python
    
    $ conda install python=3.6
    

    管理包 Packages:

    conda list -n snowflakes
    
    conda search beautiful-soup
    
    conda install --name bunnies beautiful-soup
    #升级本身
    conda update anaconda
    
    

    Python3 新建应用

    虚拟环境:

    • 创建:python -m venv .\venv

    • 激活:.\venv\Scripts\activate.bat
      命令行会提示当前虚拟环境的名称

    • 复制Heroku git

    git clone https://git.heroku.com/<app_Name>.git
    ## 有时会提示git.heroku.com登录,这时,用户名:空,密码:Token
    ## get Token: heroku auth:token
    
    ## 本地修改、调试
    pip freeze  #显示所有依赖
    pip freeze > requirements.txt  #生成requirements.txt文件
    pip install -r requirements.txt  #根据requirements.txt生成相同的环境
    保证有以下模块:
    gunicorn==19.7.1
    psycopg2==2.7.3.1
    
    git add .git commit -m "xxx"
    git push origin master
    
    • Heroku数据库初始化
      heroku run bash --app xxx
      python manage.py deploy
      python manage.py initrole

    • Heroku 环境变量:
      FLASK_CONFIG = heroku

    • 本地运行Server
      python manage.py runserver

    • 远程访问:xxx.herokuapp.com
      heroku logs --app xxx

    Python2 -> Python3

    • venv安装:
      pip install Flask Flask_sqlalchemy Flask_security Flask_admin Flask_compress Flask_script Flask_Migrate

    • print --> print()

    • try: except Except, e: --> except Except as e:

    • raw_input() --> input()

    • <> --> not is

    • from MyModule import func1 --> from .MyModule import func1
      -- Flask_Security:

    # security = Security(datastore=user_datastore)
    # security.init_app(app) -->
    security = Security()
    security.init_app(app, user_datastore)
    

    相关文章

      网友评论

          本文标题:Flask网站轻松部署到免费主机Heroku(3) - 多平台

          本文链接:https://www.haomeiwen.com/subject/sncfextx.html