专栏首页算法与编程之美Python|前后端分离开发-学习路线及资料

Python|前后端分离开发-学习路线及资料

人生苦短,我用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),而且不用管理数据库的连接状态,功能强大(比如支持事务操作),以下是操作案例。

上手难度:⭐

import records # 获取数据库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

主 编 | 王文星

责 编 | 马原涛

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:马原涛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 谈一谈|个人博客网站开发记录一

    因为疫情原因,所以有了更多时间去学习,就打算学学全栈开发,做一个自己的网站,现在网站开发已过半,写些文章记录一下自己的开发历程,也希望能给读者带来些帮助。

    算法与编程之美
  • 谈一谈|编程中的数学思维

    在个人的理解中,大多数编程题都有数学的影子(离散数学中的图、树归到数据结构),还有一些题目仅用数学方法就可以解出答案。下题《最大降水量》就属于其中。

    算法与编程之美
  • Python|猜球博弈

    今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。

    算法与编程之美
  • Python 知识点笔记一常用数据类型

    小蓝枣
  • pycharm编辑器简单配置-- 持续更新完善

    去 python 官网下载安装,配置环境变量、多版本共存等问题请参见我的另一篇博客: python 基础- python 解释器多版本共存-变量-常量

    suwanbin
  • Veeam Backup & Replication(二):添加虚拟化主机和配置备份存储

    一、添加虚拟化主机 veeam可以添加单个ESXi主机,也可以添加vCenter服务器,因为做实验,就添加一台ESXI主机为例吧。 1.1 选择 Virtual...

    行 者
  • 单细胞转录组技术梳理(二)

    在这之后,许多更灵敏、更准确的单细胞转录组技术如雨后春笋般相继被开发出来。今天继续来回顾一下2011年的单细胞转录组测序技术 STRT(Single-cell ...

    生信技能树jimmy
  • 九度OJ——1144Freckles

    题目描述: In an episode of the Dick Van Dyke show, little Richie connects the ...

    AI那点小事
  • 安全渗透测试网站漏洞问题

    前不久接到朋友的寻求帮助(前提必须要有授权许可,可不能乱渗透测试),就是说有个站搞不了了,让我看看能否协助整一下;恰好近期应急处置结束了在看系统日志,看的有点苦...

    技术分享达人
  • UVA 11039-Building designing【贪心+绝对值排序】 UVA11039-Building designing

    UVA11039-Building designing Time limit: 3.000 seconds An architect wants to desi...

    Angel_Kitty

扫码关注云+社区

领取腾讯云代金券