2021最新版Python+Django网站实战开发(

  • 名称:2021最新版Python
  • 分类:网页设计  
  • 观看人数:加载中
  • 时间:2021/12/26 15:19:30

引言

  前面提到了我们开发时选择了Python语言和Web开发框架Django,至于选择的理由可以参考这篇文章(传送门: 软件设计开发从0到1)。 无论你是一个熟练的开发者还是小白,开发过程中也总是会面临各种各样的问题,从版本选择, 目录结构怎么设计, 安全上需要注意什么, 要遵守什么开发规范等等。 好的开始是成功的一半,奠定一个好的开始,也许后面的开发会让你事半功倍。 这篇文章里我想分享一下,我对这些问题的思考和选择, 也许不是最佳实践,但是希望能给你作为一个参考。 

关于版本选择

着手开发之前必须考虑的一个问题。 

Python

如果是4,5年前,也许我会推荐Python2, 那时支持python3的模块还不是很全,但是现在不一样了。很多的开源库都开始支持Python3, 另外官方预计在2020年停止支持Python2.7版本,官方在Python3引入了很多新特性,也修复之前的许多遗留问题,  所以建议在生产环境中使用Python3。相比Python2, Python3有一些差异化的东西,需要值得注意,当你谷歌"Python2 vs Python3"时,能搜索到很多的内容,这里也简单说明下,相比Python2, Python3有哪些不一样的地方。

语法上的差异:print的用法不一样, 整数相除的结果不一样, 错误处理语法有差异, 字符串类型str和字节类型byte不能相加, 废除了xrange函数,raise错误的用法不一样, 比较不可排序类型时会报错,比如比较[1, 2] > 'foo'或者 [1, 2] > (1,2)等

特性改进: 列表表达式里的变量不再影响全局变量,即不泄露到全局变量的命名空间; 使用range(),zip(), filter(),  map(), {字典}.keys(),  {字典}.values(),  {字典}.items(),返回的是可迭代对象,而不是列表;默认字符集采用utf-8, 而不是ascii ; 引入了类型注解,标注传入的参数的类型等

扩展阅读:

Python3.6新特性官方文档中文版  https://zhuanlan.zhihu.com/p/24550488

Python3的这些新特性很方便  https://segmentfault.com/a/1190000013066350

python2与python3字符串的区别  https://my.oschina.net/sallency/blog/1563298

The key differences between Python 2.7.x and Python 3.x with examples https://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html

如果你正准备学习Python3,苦于不知道有哪些可以学习的参考资料, 也许本公众号之前写过的一篇文章对你会有帮助(传送门: 入门Python, 看这些资料就够了)

Django

选择了Django最新的版本。 当前最新的稳定版本是2.1.  需要注意的是Django2.0之后已经对Python2停止了兼容,意味着你的Python版本只能选择3(对应Django2.版,对Python版本的要求是3.5+),否则运行Django会报错。 

Django2.0相比之前引入了一些新特性, 比如admin管理后台对移动端的支持更加友好,SQLite支持外键约束, 安全性也做了一些改进等。 当然,如果你不是重度使用者,应该也感受不到太大的差别。 

Django的开发者社区很活跃, 涌现了很多优秀的插件, app。 这里推荐两个django app: xadmin(集成了很多强大且实用的后台管理系统插件,替代django内置的admin), django-rest-framework(基于django的restful api开发框架)