使用yoeman, bower, grunt等工具开发web。
目标
将要开展的一个项目,使用Angularjs 和 Flask开发一个web界面,
作为saltstack和其他自行开发的python小工具的前端界面,
实现自己的“运维操作平台”。
为了统一框架、工具和开发方式,在本文中描述了项目的一些约定。
这些约定具有通用性,应该是目前基于python的web开发技术中,
比较”主流“和”先进“的方式,所以也可以作为开发其他应用的参考。
工具和框架
工具
版本管理
基于gogs 的私有git问题管理、版本发布、资料共享
redmine项目管理
redmine的scrum插件nodejs包管理器
npm(node package manager)。本文中,npm仅作为安装yoeman, bower,grunt等的基础工具。
js依赖管理: bower
npm可以安装js包,但是没有解决依赖的问题。而bower解决了js包的依赖管理。类似maven中的依赖管理功能。前端构建工具: grunt
js开发中的项目构建工具,类似maven/ant/makefile,
通过配置文件执行压缩,编译, 单元测试, 代码检查以及打包发布的任务。前端脚手架工具
yoeman。类似maven的archetypes。python开发环境管理
virtualenv
框架和插件
环境准备
本文中仅给出MacOS下的安装方法,其他系统可以阅读官方文档或参考资料。
1 | #安装npm |
搭建工程
创建工程目录
1 | mkdir -p PROJ\_ROOT/web \# 前端工程目录 mkdir -p |
创建前端工程
1 | cd PROJ\_ROOT/web yo angular \# 一些交互,按照自己的需要选择即可。 \#... |
配置前端工程
修改IP地址
将connect -> hostname, 由’localhost’ 改为 ‘0.0.0.0’
修改dist目录
将appConfig -> dist 有 ‘dist’ 改为 ‘../app/APP_NAME/static’
virtualenv
1 | cd PROJ\_ROOT |
- 构建Flask工程
1 | mkdir -p PROJ\_ROOT/app/APP\_NAME/common |
- 配置git
1 | cd PROJ\_ROOT |
使用
以上是工程框架搭建的过程,对于开发人员,不需要要这么麻烦,只要从版本库中获取源代码后进行初始化即可:
1 | git clone xxxx cd PROJ_ROOT |
启动前端
1 | cd PROJ_ROOT/web |
然后通过http://0.0.0.0:9000可以访问前端界面。
启动后端
1 | cd PROJ\_ROOT/app |
然后通过http://127.0.0.1:5000/ 访问后端应用。
知识准备
在开始开发之前,开发人员最好熟悉以下内容:
- Bootstrap入门: http://v3.bootcss.com/getting-started/
- Angularjs入门教程: http://www.ituring.com.cn/article/13471
- Flask系列教程 :http://www.oschina.net/translate/the-flask-mega-tutorial-part-i-hello-world
- SQLAlchemy教程:
参考资料
- NPM小结 chyingp http://www.cnblogs.com/chyingp/p/npm.html
- bower解决js的依赖管理 | 粉丝日志
http://blog.fens.me/nodejs-bower-intro/ - getting started with Yeoman http://yeoman.io/learning/index.html
- Yeoman自动构建js项目 | 粉丝日志
http://blog.fens.me/nodejs-yeoman-intro/ - grunt让Nodejs规范起来 | 粉丝日志
http://blog.fens.me/nodejs-grunt-intro/ - Bootstrap入门 http://v3.bootcss.com/getting-started/
- AngularJS入门教程 http://www.ituring.com.cn/article/13471
- Flask系列教程
http://www.oschina.net/translate/the-flask-mega-tutorial-part-i-hello-world - 使用 Flask 和 AngularJS 构建博客 - 1
http://segmentfault.com/a/1190000000654088 - 使用 Flask 和 AngularJS 构建博客 - 2
http://segmentfault.com/a/1190000000665636