本文目录
想学习python做后端,有人推荐django有人推荐flask,二者有啥区别呢
Flask
Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
- Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
- 入门简单,即便没有多少web开发经验,也能很快做出网站
- 非常适用于小型网站
- 非常适用于开发web服务的API
- 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验各方面性能均等于或优于Django
- Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
- Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
- Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
- Flask比Django更加Pythonic,与Python的philosophy更加吻合
Django
jango太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
- Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
- Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
- Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
- Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
- Django目前支持Jinja等非官方模板引擎
- Django自带的数据库管理app好评如潮
- Django非常适合企业级网站的开发:快速、靠谱、稳定
- Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
- Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
- Django上手也比较容易,开发文档详细、完善,相关资料丰富
你认为Django如何
作为一个3年python工作者,感觉很惭愧.python强项在人工智能,然而我的工作确跟人工只能毫不相干,一直与django打交道.
django是python的大型后台框架,功能还是很强大的
orm
orm全程是Object-Relation Mapping,对象关系映射,有一个对象(Modal)对应一张数据表.一个属性名对应一个字段,一个类实例对应一条记录.他可以让你专注代码编写,而不用去管数据库的创建,因为orm给你提供了makemigrations和migrate两个命令
你只要敲敲命令,轻轻松松创建数据表,当然偶尔也会出现问题.对于表字段属性也涵盖了很多,像主键,索引,备注,外键等都有.关于外键要说一下,平常我们数据库都不会建实际的外键关系,所以在orm中我们也可以通过配置,删除在数据库中的外键关系.但是orm中你需要有这个外键关系,有了这个关系,你才能实现连表查询呀.
既然能轻松建数据表,那我们不需要来关心数据库类型了,也是通过配置来实现的.
对于增删查改,基本上你能想到的数据库操作,他都能实现,如果有不能实现的,他还给你提供了原生sql语句查询的.其实,orm的查询,是django自己把你的查询转化成了对应数据库类型的原生sql.有这种转化,必然会损耗部分机器性能.所以要不要用orm还是要视情况而定.
mvt模式
mvt模式,是我不太喜欢模式,model-view-template,他的模板(template)在这个前后端分离的大环境下显的很鸡肋.没有Controller,总感觉怪怪的,你要自己写吧,跟人家这模式又不相符,你要不写吧,代码就会乱乱的.抓耳挠腮~~
小插曲
之前我们公司是没有前后端分离的,我见过我们的后端大神,用xadmin,写前端的.不过我没用过.我还是喜欢用HTML.哈哈,这可以看出,django是不是有点强,虽然有的强没啥用.
总结:
django的功能,肯定不止这一点.我只列一些平常用的比较多的,其余功能可以取官网查询,现在应该是2.x版本了,有几个版本改动还是挺大的.