1、了解Python和Django版本的对应关系
https://docs.djangoproject.com/en/3.2/faq/install/#faq-python-version-support
2、环境说明
如果只是使用Django开发简单的应用用于学习练习,那么直接在当前的主机(电脑)环境下进行安装和开发就行。
但是最好还是借助于pyenv
+ virtualenv
组合的虚拟环境
来进行学习和实际开发,好处就是各个项目有自己独立的环境,环境彼此之间不互相影响且不同的项目可以使用不同的Python和Django版本
关于 pyenv
+ virtualenv
的使用请参考 http://newblog.colinspace.com/
个人目前项目开发使用的版本为 Python 3.9.15 + Django 3.2.16
3、开发依赖
1、Django默认提供了内置的 web server
和 数据库sqlite3
, 对于简单项目或者是项目的前提开发阶段,该模式已经能满足需求。
2、Django除了支持内置的sqlite3
数据库之外,还支持MySQL、Mariadb、Oracle和 Postgresql,使用目前使用最多的可能就是MySQL了,官网建议使用 PostgreSQL,生产环境具体使用什么,视实际情况而定。
对于数据库的配置使用参考 https://docs.djangoproject.com/en/3.2/ref/databases/
3、生产环境部署的时候,就不用内置的 web server了,建议使用 wsgi
结合 apache/nginx 一起使用,可以实现 静态资源和动态请求分离。也可以通过nginx代理实现多个后端Django的负载均衡等。
-
官网参考: https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
-
生产部署案例参考:
开发工具的选择
工欲善其事必先利其器,所以对于开发人员而言,通过开发工具可以很好的提升开发效率
目前比较流行的是 微软的 VScode
和 Jetbrain 的 PyCharm
虽然网上目前对VScode
的宣传满天,各种很厉害的插件满天飞,但是从时间自己的使用来看,个人还是喜欢和习惯于 PyCharm
。不过vscode是免费的,Pycharm是有收费的,不过可以申请使用教育版本,虽然和实际收费版本有差异,但是对于常规性的开发完全足够了
-
vscode 下载地址 (请自行百度^_^)
-
pycharm 下载地址 (请自行百度^_^)
django学习案例
本博客提供了一下练手的项目,供大家学习参考,源码都会开源在 gitee,感兴趣的可以去下载尝试。如果觉得对你有帮助,希望不吝关注哦~
1、Django polls 简单调查问卷
就是Django官网提供的案例教程,这里以它开始,站在自己理解的角度实际的敲代码一遍
2、Django Todos 日常工作记录
TODO工作清单,大家工作、生活中最常会用到的功能,当然现在生活中手机上类似的提醒事项
软件,工作上有功能更加强大的项目管理类的系统,比如 TB、Worktile等
不过这里实操自己给自己开发一个,学习的同时可以记录 工作、生活中的个人琐事嘛。
项目亮点:
-
实现任务分组,有效规划任务
-
结合钉钉或者短信实现不同级别的任务个性化提醒
3、Django Blog 个人博客
通过前面两个案例的学习,我们已经能有效的利用Django进行简答项目开发。
对于技术人员而言,学会分享是很重要的事情,第一、分享的过程本身就是最自己学习的总结,第二、通过分享可以和互联网的同行进行交流学习,也是一种成长的过程。
项目亮点:
-
在常规的博客功能之上实现了
点赞
和喜欢
的小功能 -
实现用户注册和登录功能(注册只用于演示,实际上线不建议开放哦)
-
第三方登录功能
-
实现最基本的评论功能
-
使用django-mptt实现多级评论功能和限制层级
4、利用Django类视图改写Django Blog项目
前面三个案例都是使用方法视图
来实现功能,其实Django默认封装了很多高效类视图来提供开发的效率,可以让我们少写较多的代码来实现相同的功能。
5、Django Album 相册功能
生活不缺美,缺少的是发现美的眼光。发现美了,为了留住精彩瞬间,那我们就应该找个地方把他们保存起来。
从功能上来讲,相册功能和前面的Django Todos
项目类似,存在分组(相册),然后分组(相册)下有很多记录(照片)。
项目亮点:
-
前端代码实现 图片的瀑布流展示
-
图片的无线下拉功能
-
Django的自定义文件存储系统,把图片存储在云端的对象存储中去