初始化数据库: mysql -uroot -p 密码是: 123456 生产mysql: create database mytoutiao; 测试mysql: create database test_mytoutiao;
更新数据库
FLASK_APP=manage.py flask db init
FLASK_APP=manage.py flask db migrate
FLASK_APP=manage.py flask db upgrade
运行flask
FLASK_APP=app.py flask run
FLASK_APP=app.py FLASK_DEBUG=1 flask run
flask ishell命令行
FLASK_APP=manage.py FLASK_DEBUG=1 flask ishell
见test_post.py, 用idea的Run功能时, 请把from tests.base import BaseTestCase
放在第一行, 因为base.py中会设置env=test
或用命令行:
env=test pytest -s
python crawling.py
- Post页面
- 登陆注册(不含手机号验证码登陆)
- 标签分类
- 搜索
- 点赞
- 收藏
- 评论
- 用户(关注, 个人设置)
- 热门分享/最新分享Tab 10.首页feed
- flask和扩展
- SQLALchemy
- bootstrap
- jquery
- redis(键值对数据库, 缓存)
- mysql
- Elasticsearch(搜索)
在写model的时候, 就准备好缓存
- User
- Contact 关注关系
- Post
- Like
- Collect
- Tag
6. 准备数据(写爬虫): 爬RSS: https://www.dongwm.com/atom.xml
npm install cnpm -g cnpm i
使用webpack: npm run start: watch src目录的变化, 生成static/dist/*的js文件 python run.py: watch src/templates目录的变化, 动态加载前端页面 最终还是用templates里的模板文件, 加载static/dist/*的文件
样式使用webpack来管理, 然后模板导入dist/xx.js 阿里的icon库: https://www.iconfont.cn/
# 额, 我发现这样总会报错: pipenv install git+https://github.com/dongweiming/flask-security.git@develop#egg=flask_security
# 所以就用pip install吧...
pip install git+https://github.com/dongweiming/flask-security.git@develop#egg=flask_security
flask security的一系列功能: mail, 各种页面替换成中文 http://127.0.0.1:5000/register 我注册的用户: yangkai 123456 812350401@qq.com
本地安装es 不使用es的官方客户端, 用起来太麻烦, 使用elasticsearch-dsl, 类似walrus之于redis 安装在/opt/elastaicsearch 启动: cd /opt/elasticsearch/; ./bin/elasticsearch -d -p pid 停止: pkill -F pid 检测启动成功与否: curl -X GET "localhost:9200/?pretty"
需要另起一个进程, 专门跑worker进程哟
ActionMixin抽象出公告方法 api的设计非常漂亮, class-based view和marshal的使用可以重点学习