Web开发是非常重要的技术手段,虽然技术难度不是很大,但是里面涉及的内容却很多。其实软件的世界里,没有什么是无法实现的,现在都是开源的,而且软件基本上没法申请专利,所以软件类的技术都不会有什么独家的技术。
Web开发中,更加看重的是开发速度快,易维护,用户体验好,其实就是颜值要高,要漂亮,从开发角度看,基本上都是使用MVC的模式,做一些简单的CRUD应用,复杂数据处理,技巧性的,算法性的都放到了更后面的地方去了。各种Web开发语言都有很多种MVC框架,我最近比较喜欢Flask,主要是他轻巧,简单,而且是python语言的,但是如果深入到Flask内部,也还是各种的设计模式,理解起来还有点费劲,那就先从表面上梳理一下近期接触到的一些模块吧。
View
view其实就是用户看到的页面,很久之前在windows上开发,还叫视图。这个大部分是前端的工作,基础的知识点就是,老三位HTML/CSS/JS。比较流行的类库比如Bootstrap, jQuery都是为了提高前端开发工作效率的,开发效率高,但是也有一定的学习成本。
Flask在view这方面提供了Jinjia的模板引擎,他可以很方便的通过标记,对页面进行替换、生成,然后返回给用户。
wtform是一个Flask插件,对View表单处理很方便,包括生成表单,表单校验非常方便
Model
我理解Model其实就是数据,为了高效开发,或者说更符合OO原则,很多都是使用ORM。在Flask中,一般使用Flask-SqlAlchemy。一开始我还是挺排斥使用这类ORM的,总觉得直接使用SQL不是很痛苦么。但是发现,当要处理的数据多了,而且业务逻辑多了,把代码分解到不同的模块中,使用面向对象的方式来处理数据实体,还是很方便的。
Controller
Flask作为框架,把底层通信,HTTP的request/response,都完美封装了。CRUD开发者只需要处理route,render_template, redirect,再结合Model和View就可以搭建最简单的应用。
此外,Flask有很多插件可以很方便高效的处理一些通用业务逻辑比如Flask-login,Flask-Restful等等。
总之,Flask还是一个挺小清新的web开发框架,只要掌握了基本的模板语言,wtform,SqlAlchemy,Flask基本函数和组件,剩下的就是把所有的创意变成MVP,然后一个个的idea去尝试,没准哪个就成了。