Django项目开发基础知识

2022-01-20 Django 0 497

1、了解Python和Django版本的对应关系

image-20221110225931231

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的自定义文件存储系统,把图片存储在云端的对象存储中去


如果觉得文章对你有所帮助,欢迎点赞和赞赏~

文章同步发布个人微信公众号,欢迎关注。第一时间获取最新发布

全栈运维/DailyJobOps

如果阅读过程中有任何问题,欢迎入群交流~

QQ交流群
本文标题: Django项目开发基础知识
本文作者: 老鹰
发布时间: 2022-01-20 10
原始链接: http://newblog.colinspace.com/blog/post/10/
许可协议: 署名-非商业性使用 4.0 国际许可协议
转载请保留原文链接及作者