欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
前言
人生苦短,我用python。python开发web项目在以前总是因为其运行效率低下而受到诟病,但随着硬件设备性能的不断提升,间接弥补了这一缺点。并且因为python开发的高效性,python web开发也受到越来越多人的关注。
本文小编将向大家推荐一条python前后端分离的项目开发学习路线,并分享小编收藏的学习资料(文末)。
提示
无论是哪种开发路线,都有一些硬性的共同要求:
html、css、js、数据库原理(搭配一种数据库语言如sql)。这四个部分要有一定的基础,不是太好也行。
前后端分离的项目开发主要由以下五个部分组成:
前端静态页面
前端数据处理及交互
前端项目管理框架
后台数据处理、收发
数据库
路线:
bootstrap+vue+(webpack,nodejs,vue-cli)+python flask+python records
前端静态页面
也就是html和css搭建的静态网页部分,想要自己做一个完整又漂亮的网页,靠纯手写html和css代码不仅工作量大,而且容易出各种BUG。这时就需要借用到前端框架,用来快速的搭建静态页面。
框架推荐:
BootStrap4
全球最流行的前端开源框架之一,用于构建响应式、移动设备优先的 WEB 站点。
实用、稳定,响应式(更好的用户体验),各种组件拿来即用,用较少的代码便能实现网页到app页面的完美过渡。风格简约大气也就意味着不算太漂亮,但是你可以自己写样式覆盖。
上手难度:⭐
Layui
国人开发,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈。
美观、简单、快速、组件多,而且功能集成度高,适用于专注于后台开发的人员。只是页面的响应式操作一般。
上手难度:⭐
前端数据处理及交互
在前端页面接收后台发送的数据后,需要将其更新到静态页面上,以及对于用户的各种操作(如点击、添加、删除数据等),需要向后台发送相关请求。这些东西靠js硬肝,难度大。所以需要简单又强大的js框架来快速的完成这些操作。
框架推荐:
Vuejs
简单而又强大的js框架,国人大佬尤雨溪的开源项目,是最流行的前端框架之一。
提供数据的双向绑定(一端数据改变,另一端数据随之改变),功能强大,易上手。社区资料丰富。
上手难度:⭐⭐
Reactjs
谷歌开源的js框架,组件、扩展更加完善、稳定。提供强大的灵活性和响应能力。但是学习曲线比较陡峭。
上手难度:⭐⭐⭐
前端项目管理框架
这是初学者最容易忽略的部分,抛开后端开发不谈,想靠html+css+js这三大件开发完整的前端项目是远远不够的,在具体的开发中需要做好各种开发配置、扩展管理等,如果都靠手动配置,将导致开发时间和学习成本直线上升。这时候一个好的项目开发管理框架就能让我们专注于项目的实现,而不用过多的去操心各种配置。
各种项目管理框架需要配合使用,如webpack+nodejs+vue-cli等。
上手难度:⭐⭐
这部分的学习资料将附加到前两部分的学习资料中。
后端数据处理、收发
对于前端发送的数据,需要后台进行接收、处理以及回应。Python最流行的后台开发框架主要有两个,django和flask。
Flask
微框架,小而精,使用灵活,组件丰富,可以根据需要添加各种组件。
上手难度:⭐⭐
Diango
完整的项目开发架构,提供一站式的解决方案,也就是说Django一开始的目标就是为以后玩大的做准备。
上手难度:⭐⭐⭐
对于新手建议先从Flask入手。
数据库
数据库的作用就不言而喻了,在python中对数据库进行操作的第三方库比较多,这里推荐两个比较流行的。
Flask-SQLAlchemy和Records
均支持Oracle、Mysql、Sqlite等关系型数据库,都是基于SQLAlchemy的二次开发。
Flask-SQLAlchemy集成于flask中,通过自定义的规则实现对不同数据库的操作,但是代码比较复杂,有多复杂可以百度一下Flask-SQLAlchemy看看相关代码。
上手难度:⭐⭐⭐
Records支持原生sql语句操作不同数据库,如果已经掌握sql,分分钟便能上手(so easy),而且不用管理数据库的连接状态,功能强大(比如支持事务操作),以下是操作案例。
上手难度:⭐
importrecords
# 获取数据库
db = records.Database('mysql+pymysql://root:@localhost:3306/dev01_git')
# 查询
rows = db.query('select * from lemon_user')
# 连接数据库
db = records.Database('mysql+pymysql://root:@localhost:3306/dev01_git')
# 创建表
sql_create_table ="""CREATE TABLE IF NOT EXISTS lemon_user (
name varchar(20),
age int
) DEFAULT CHARSET=utf8 ;"""
db.query(sql_create_table)
学习资料
Bootstrap4
视频教程:https://www.imooc.com/course/list?c=bootstrap
中文官方文档:https://v4.bootcss.com/docs/getting-started/introduction/
教程多为3的版本,建议直接看官方文档,实在看不懂,看部分3的视频之后再去看4的文档,栅格系统是核心知识。
学习时长:如果已经有html和css基础,只需花上几个小时便能上手。
Vue+axios+webpack+nodejs(npm)+vue-cli
视频教程:https://www.bilibili.com/video/BV15741177Eh?t=2&p=87
这是一个完整的前端项目开发教程,也是小编看过的所有教程中最好的。
学习时长:69小时,包含多个完整项目案例。
Flask
官方文档:https://dormousehole.readthedocs.io/en/latest/
视频教程版本台太旧,不建议观看。初始阶段只需浏览官方文档掌握简单的路由及数据收发部分即可。
Records
在掌握数据库原理知识后,直接百度Records文章即可。
Vue+Flask完整项目文档教程(收费)
文档教程:https://www.shiyanlou.com/courses/878
实验楼99元教程,版本比较老,把之前的看完这个就没太必要买,有钱的可以买来参考参考。
总结
可以先学习简单的flask案例,再学习前端开发内容(案例测试需要用到后台接口),所有教程时间加起来不到100个小时,加加油,就能开发自己的应用。
END
主 编 | 王文星
责 编 | 马原涛
where2go 团队
微信号:算法与编程之美
长按识别二维码关注我们!
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!