seasonstar / bibi
- воскресенье, 26 марта 2017 г. в 03:12:31
JavaScript
An e-commerce fullstack solution for Flask 出口电商全栈解决方案
Bibi原本是一款海外留学生活助手APP,含电商,社交等热门模块,经历过商业运营的考验,是较为成熟的解决方案。
本项目是电商服务后端,基于 Flask, MongoDB, Redis, Celery, RabbitMQ, 支持 Python 3.5.
Bibi 提供电商全栈解决方案,配合以下项目使用:
bibi-frontend 微信前端项目
bibi-ionic 手机端Hybrid APP源码
Features:
用户中心
社交系统
内容系统
商品系统
购物车系统
订单系统
支付系统
后台管理系统
AWS文件上传
Bing翻译API对接
Openexchange外币兑换汇率API对接
kuaidi100快递跟踪API对接
4PX物流商对接
搭建环境
本教程基于Ubuntu/Debian,已安装python3 环境的请跳过
# 安装python3环境
sudo apt-get update
sudo apt-get install python3-pip python3-dev
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
#安装virtualenv
sudo pip3 install virtualenv virtualenvwrapper
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
echo "export WORKON_HOME=~/Env" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
# 现在你的home目录下有Env的文件夹,你的python虚拟环境都会创建在这里
mkvirtualenv bibi # bibi可随便改成你的项目名
workon bibi # 现在已进入项目的独立环境
# 安装 mongodb 略 (请安装mongodb 3.0以下版本)
# 安装 redis 略
# 安装 rabbitMQ 略
安装依赖
pip3 install -r requirements.txt
初始化数据库
python3 manage.py shell
# into Python3 shell
>>> from application.models import User
>>> user = User.create(email="xxxx@xxx.com", password="xxx", name="xxxx")
# email, password, name改成你自己的
>>> user.roles.append("ADMIN")
>>> user.save()
<User: 58d25726266b0451cc136c17>
运行
python3 manage.py runserver
本地可以打开 http://127.0.0.1:5000/
部署
# 安装 supervisor
sudo apt-get install supervisor
# 安装 gunicorn
pip3 install gunicorn
sudo vim /etc/supervisor/conf.d/bibi.conf
bibi.conf代码
[program:bibi]
command=/root/Env/bibi/bin/gunicorn
-w 3
-b 0.0.0.0:8080
--log-level debug
"application.app:create_app()"
directory=/opt/py-maybi/ ; 你的项目代码目录
autostart=false ; 是否自动启动
autorestart=false ; 是否自动重启
stdout_logfile=/opt/logs/gunicorn.log ; log 日志
redirect_stderr=true
PS: 上面 -w 为 开启workers数,公式:(系统内核数*2 + 1)
nginx配置
server {
listen 80;
server_name bigbang.maybi.cn; # 这是HOST机器的外部域名,用地址也行
location / {
proxy_pass http://127.0.0.1:8080; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
接着启动celery, supervisor, nginx
celery -A application.cel worker -l info &
sudo supervisorctl reload
sudo supervisorctl start bibi
sudo service nginx restart
大功告成。
有问题,欢迎提Issue。