前面随笔中提到了我要用flask技术实现一个旅游类web程序,基本需求如下:(从学校的软件课设要求中摘录的)
旅游自助系统功能
1.旅游局维护景点的信息:景点位置、游览项目及价格、景点介绍、开放时间等
2.每个旅游公司维护本公司开设的旅游线路服务信息:景点名称、餐饮、住宿、交通、游览时间、价格、联系方式等
3.对各种信息的维护包括增加、查询和删除
4.旅游者可以查询景点信息
5.旅游者可以查询旅游公司提供的旅游线路信息
6.旅游者可以自定义查询条件进行查询,系统返回符合条件的所有旅游公司线路服务信息:定义自己的时间安排、旅游费用预算、主要的旅游景点意向
7.旅游者可以通过本系统向特定旅游公司提出旅游线路服务的预约,返回预约是否成功的结果。系统根据该旅游公司的旅游线路服务能力(每团的人数限制)进行预约处理?
8.旅游公司可以查询本公司各线路服务的预约情况以及预约客户的信息
9.旅游局可以按照景点查询旅游线路服务预约中包含该景点的预约数量以及预约游览的日期
10.软件用户均可以将查询结果打印为报表保存
11.支持用户通过Internet访问该网站
从数据流来看,整体设计考虑三部分信息:用户信息、景点信息、线路信息。实现这三个类的属性和方法,再逐步扩展,大部分需求都是对数据的增删改查,在Flask Web框架中使用sqlalchemy数据库框架实现非常容易,代码精简,逻辑清晰。
解决了数据库操作就要在页面中把数据结构化的表示出来,Flask使用jinja2模板引擎,可以快速把前后端结合起来,后端写好业务逻辑,再在模板中写一点点HTML就可以看到整体效果,如果觉得展示效果不好,还可以用Flask-BootStrap框架轻松解决样式。
对于课程设计来讲重点放在后端逻辑实现上,前端知识用多少学多少即可。
参考书:
1.基于Flask的Web应用开发实战,书中很多功能和实现细节都是我们可以借鉴的,比如邮箱验证、账户权限管理等
2.HTML5+CSS3基础教程,两三天时间看了11章,后面是用哪块就学哪块,当成工具书来用
3.Javascript基础教程,正在学习,将来做一些高级的交互页面肯定会用到
以下是废话
个人感受其实在学校(本科)上了这么多专业课,学的连皮毛都算不上,没有哪些知识是可以拿出来就用的(考试除外),但有了这些基础的知识(或者说是学习方法)的积累,再去学新的技术,新的框架,新的语言,就不会觉得无从下手了。
这次新接触Python,看完概念一两天就可以上手做点东西了,用两三个星期之后就熟练了。还新接触了HTML/CSS,学习方法是类似的,而新知识新技术是永远也学不完的,个人拙见在软件行业不被淘汰的本质就是程序员拥有快速掌握新技术的能力,这种能力一定是在各种大型项目、实际商业环境中训练出来的,再经过重新的学习和反思,提炼成为经验。那些十年以上的老程序员们也许他们遇到了好的时代,无论怎么说,持续的学习和经验积累是必须的。我个人也是放弃了考研,选择到公司里做事,还是希望能提高这方面的能力。当然这也不是什么决定生死的选择,去工作不代表不读书,读书也不代表就没有项目经验,个人选择是一方面,时代环境也是一方面,互联网行业多么有活力,大大小小的公司在北京“你死我活”,一想到一年后我能参与到其中,无论公司大小,项目大小,待遇高低,我都会全力以赴,持续学习,终生学习。