博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask-cyblog个人博客部署文档
阅读量:3904 次
发布时间:2019-05-23

本文共 2220 字,大约阅读时间需要 7 分钟。

flask-cyblog个人博客部署文档

  • 写在前面:
    使用python3.6 flask框架开发,前端框架bootstrap 使用了nix主题。
    项目地址:https://github.com/Ch3nYe/flask-cyblog

0x0 项目介绍

这是刚学习flask框架时的练习项目,其实就是东拼西凑来的。

  • 数据库可以使用mysql或者SQLite,下面部署方式为了简便使用后者。
  • 上线后初始用户名和密码是:master@xxx.com root
  • 项目经过测试centos和ubuntu都能部署
  • 需要的库都在requirements.txt中列出
目录结构

flask-cyblog

├─app
│ ├─admin # admin视图
│ ├─auth # auth视图
│ ├─main # main视图
│ ├─static # 静态文件
│ │ ├─css
│ │ ├─fonts
│ │ └─js
│ ├─templates # 静态html模板
│ │ ├─admin
│ │ └─auth
├─migrations
│ ├─versions
├─config.py # 配置文件
├─manage.py # 启动项

如何配置

  • config.py
    需要修改该自己的SECRET_KEY
  • template
    一些html’模板写死了我的留言,可自行修改
  • manage.py
    User.insert_admin()
    这一句是插入admin账号的配置,可自行修改,修改之后初始账号和密码就变了。

注[IMPORTANT]:登录页被我隐藏在页面最下面的ChenYe字样上了,点击可跳转至登录页!!!

0x1部署启动

  1. git clone 源码
  2. 在服务器配置环境,目前测试gunicorn 启动 稳定性和性能有待观察
  • 安装virtualenv:

    pip3 install virtualenv

  • 创建虚拟环境并指定PYTHON版本

    virtualenv venv --python=python3.6

  • 激活虚拟环境

    source venv/bin/activate

  • 可以通过以下命令退出虚拟环境

    deactivate

  • 删除虚拟环境(即为删除虚拟环境文件夹)

    rm -r venv

  • 安装需要的库(有待测试新版本库是否兼容)

    pip3 install -r requirements.txt

  • 在项目目录下生成上线数据库

    python manage.py deploy product
    也可以顺便生成15条测试数据,源码可以为指定条数
    python manage.py deploy test_data

  • 使用gunicorn启动app

    gunicorn -b 0.0.0.0:80 manage:app

  • 后台运行: nohup gunicorn -b 0.0.0.0:80 manage:app > out.file 2>&1 &

异常处理

80端口极有可能被apache或者其他应用占用,解决方法:

  1. 改为其他端口
  2. 停掉所有其他占用80端口的服务
    使用 sudo lsof -i:端口号 查看端口
    使用 sudo kill PID号 杀掉进程

有可能启动以后也无法访问,极有可能是防火墙的问题,可以先把防火墙关掉:

sudo ufw disable

0x2 停止gunicorn:

查看进程树

pstree -ap|grep gunicorn
2. 重启Gunicorn任务
kill -HUP 14226
3. 退出Gunicorn任务
kill -9 进程id

0x3 升级python3.5->python3.6 (不必要)

终端输入python3 -V ,查看版本

  • 挨个执行下面的命令升级
    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install python3.6
    最后一条命令输入Y进行安装。
    再次输入python3 -V发现没有变化还是python3.5,还需要下面步骤
    输入
    which python3
    发现python3 路径
    我的是/usr/bin/python3
    cd /usr/bin/
    sudo rm python3 删除原先python3.5
    sudo ln -s python3.6 python3
    创建软链接
    更新 pip
    sudo apt-get install python3-pip
    再次输入 python3 -V
    这时候是python3.6
异常处理
  • 如果 pip 出现 No module named apt_pkg 错误

    sudo apt-get remove --purge python3-apt
    sudo apt-get install python3-apt

  • 如果出现ModuleNotFoundError: No module named ‘pip._internal’

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python3 get-pip.py --force-reinstall

0x4 图片展示

外链图片转存失败

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转载地址:http://wnoen.baihongyu.com/

你可能感兴趣的文章
NLP 主题抽取 Topic LDA代码实践 gensim包 代码
查看>>
NLP 工具包 大调查 自然语言处理工具包合集
查看>>
scrapy爬取酒店评论数据
查看>>
各框架下(tensorflow, pytorch, theano, keras)实现几个基础结构神经网络(mlp, autoencoder, CNNs, recurrent, recursive)
查看>>
概率图模型学习笔记:HMM、MEMM、CRF
查看>>
新手小白从零开始开发微信小游戏
查看>>
CentOS下docker安装
查看>>
软考相关英语
查看>>
[老老实实学WCF] 第四篇 初探通信--ChannelFactory
查看>>
ASP.NET 中的 Async/Await 简介
查看>>
解决Chrome中调试JS提示“Uncaught TypeError: Cannot use 'in' operator to search for”错误信息问题
查看>>
Mac下安装OpenCV2 for Python 3.7
查看>>
阿里巴巴java规范 第一版
查看>>
Oracle无法新增数据,提示ORA-01653,无法通过8192(在表空间USERS中)扩展
查看>>
Windows下RabbitMQ安装
查看>>
RabbitMQ如何发送与接收数据
查看>>
WebApi使用redis模拟抢购场景
查看>>
【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】
查看>>
SpringMVC使用Jedis发布后提示java.lang.ClassNotFoundException: redis.clients.jedis.Jedis问题
查看>>
MVC Controller 链接到 API Controller 以及反向链接
查看>>