总结python Django在开发中的使用经验

这次给大家带来总结python django在开发中的使用经验,在python django在开发中的注意事项有哪些,下面就是实战案例,一起来看一下。

大三的时候第一次接触 Django,从真正使用 Django 做项目到现在也快 4 年了。最喜欢的其实还是 Django 的 ORM 框架。公司的项目都是前后分离的,使用 Django 做后端接口开发还是很高效的。

特此总结一些 Django 开发的小经验。先说一些最最基础的吧。

使用 virtualenv 隔离开发环境

使用 pip 管理项目依赖,主要就是一个小技巧,使用 pip freeze > requirements.txt 来保存依赖的模块和版本

立即学习“Python免费学习笔记(深入)”;

使用 gitignore.io 这个网站提供的 .gitignore 文件管理代码库文件

打包和发布

项目的打包和发布用的 Docker,Django 项目的 Dockerfile 特别简单:

FROM python:3.5COPY ./requirements.txt /srcWORKDIR /srcRUN pip install -r requirements.txtCOPY . /srcEXPOSECMD uwsgi --http :--wsgi-file

这一个 Dockerfile 模板可以通吃 80% 的 Django 项目了。

日志配置

既然用 Docker,就放弃了把日志写入文件,直接写到标准输出。

   # settings.py # ...LOGGING = {    'version': 1,    'disable_existing_loggers': False,    'formatters': {        'verbose': {            'format': '[application] %(levelname)s %(asctime)s %(module)s %(message)s'        }    },    'handlers': {        'console': {            'level': 'DEBUG',            'class': 'logging.StreamHandler',            'stream': sys.stdout,            'formatter': 'verbose'        },    },    'loggers': {        'app': {            'handlers': ['console'],            'level': 'DEBUG',            'propagate': True,        },    },}

新版本的 uwsgi 已经可以把 webapp 的日志收集起来输出到标准输出里面了。如果需要收集、管理日志的话,就是用 Docker 日志收集工具,直接收集 Docker 容器的日志即可。

自动化测试

既然是纯后端项目,工程师完全可以通过自动化测试来检测自己的代码。Django 本身对测试提供了很好的支持,可以通过 sqlite 来搭建测试数据库,还有基于内存的缓存,做测试不会增加对其他系统的依赖。开发起来事半功倍。

除了要写自动化测试代码,还要能统计测试覆盖率。目前我们用的是 coverage.py 这个工具,说实话没有 node.js 的 istanbul 好用,输出的报告没有 Istanbul 详细和易读。不过用来检查 “死代码” 还是够用的。

针对 http 代码的测试

有些项目需要对接的第三方系统比较多,比如微信认证、支付、短信等常见的,可能还有其他一些垂直业务领域的系统。这部分接口对接的代码,也应该纳入到测试当中,毕竟 Python 作为脚本语言,代码很容易出现错误。

这块一般是用 responses 这个模块来 mock http 请求。

定时任务

有一些 Django 项目需要做一些定时任务。首先,绝对不用 linux 内置的 crontab。主要的问题还是维护的成本高,没准哪天就把这个配置给忘了。

我们现在方式都是借助 Django Command 的功能,将定时任务封装成一个 command。在这个 command 里面运行一个 scheduler。就像下面这样:

import schedulefrom django.core.management.base import BaseCommandclass Command(BaseCommand):    def handle(self, *args, **kwargs):        schedule.every(45).minutes.do(do_this)        schedule.every().day.at('04:00').do(do_that)        while True:            schedule.run_pending()            time.sleep(1)

如果对于这块有任何不懂的问题可以随时来问我,我对于学习方法,系统学习规划,还有学习效率这些曾经研究的很深,希望可以帮助大家少走弯路。Python新手交流群 前三位:四六三 ,中间三位:零二四,最后三位是:零九一

相信看了这些案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

相关阅读:

vue的css动画

image与view标签上下有空隙的解决方法

django0

django1

以上就是总结python Django在开发中的使用经验的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:33:10
下一篇 2025年12月21日 17:33:28

相关推荐

  • 怎样使用html网页中的锚点

    这次给大家带来怎样使用html网页中的锚点,使用html网页中的锚点的注意事项有哪些,下面就是实战案例,一起来看一下。 锚点是网页制作中超级链接的一种,又叫命名锚记。命名锚记像一个迅速定位器一样是一种页面内的超级链接,运用相当普遍。 英文名:anchor 使用命名锚记可以在文档中设置标记,这些标记通…

    好文分享 2025年12月21日
    000
  • html代码在编写过程中的一定要注意的三点

    这次给大家带来html代码在编写过程中的一定要注意的三点,编写html代码的注意事项有哪些,下面就是实战案例,一起来看一下。 本文想说的警惕点与浏览器兼容无关,主要是几个本人在项目中遇到的几个小问题的总结,问题虽小,但是却有时很困扰人,在此记录一下,如果后期有此类问题会持续添加到这里。 1.内联标签…

    好文分享 2025年12月21日
    000
  • HTML中的文件包含

            在论坛中常常有网友问到,可以在一个html的文件当中读取另一个html文件的内容吗?答案是确定的,而且方法不只一种,在以前我只会使用iframe来引用,后来发现了另外的几种方法,那今天就总结这几种方法让大家参考一下,本人觉得第三种方式较好!         1.iframe引入,看看…

    好文分享 2025年12月21日
    000
  • html中关于a标签伪类中的visited无效的解决办法

    html中关于a标签伪类中的visited无效的解决办法 伪类超链接<!—->a:link {color:red;font-size:20px;}a:visited {color:black;font-size:22px;}a:hover {color:yellow;font-siz…

    好文分享 2025年12月21日
    000
  • javascript如何实现机器学习_TensorFlow.js能运行哪些模型?

    TensorFlow.js支持三类模型:预训练模型(如cocossd、blazeface)、Python训练后转换的自定义模型、纯前端小规模训练模型;需注意加载性能、兼容性、隐私及终端适配。 JavaScript 本身不内置机器学习能力,但通过 TensorFlow.js(简称 TF.js),你可以…

    2025年12月21日
    000
  • javascript的增强现实是什么_如何用AR.js开发AR应用

    JavaScript的增强现实(AR)是基于Web技术在浏览器中实时叠加虚拟3D内容到真实视频流的Web AR;AR.js是轻量开源框架,依托A-Frame与Three.js,支持Marker、定位及NFT跟踪,兼容主流移动浏览器。 JavaScript 的增强现实(AR)是指利用 Web 技术(主…

    2025年12月21日
    000
  • JavaScript中如何实现数组排序_sort方法原理

    Array.prototype.sort() 默认按字符串 Unicode 码点升序排序,需传入比较函数实现数字等正确排序;V8 引擎对小数组用插入排序、大数组用 TimSort,且 ES2019 起要求稳定排序。 JavaScript 中 Array.prototype.sort() 默认按字符串…

    2025年12月21日
    000
  • javascript的自然语言处理怎么做_如何实现简单的情感分析

    JavaScript可通过轻量库(compromise、ml-sentiment)、关键词规则或调用云API实现实用情感分析,适合前端实时处理、Node.js小工具及原型验证,但需注意中文分词难点、浏览器性能限制及语句多极性问题。 JavaScript 做自然语言处理(NLP)不像 Python 那…

    2025年12月21日
    000
  • javascript如何实现数据可视化_Chart.js和D3.js哪个更强大?

    Chart.js适合快速生成标准图表,D3.js适合高度定制化可视化;前者开箱即用、学习成本低,后者灵活度高、需掌握底层概念;选择取决于需求复杂度与团队能力。 Chart.js 和 D3.js 不是同一类工具,不能简单比“谁更强大”,关键看你要做什么:Chart.js 适合快速画常见图表,D3.js…

    2025年12月21日
    000
  • javascript JSON如何解析_它在数据交换中为何如此重要?

    JavaScript中JSON解析核心是JSON.parse()和JSON.stringify(),前者将JSON字符串转为对象,后者将对象序列化为JSON字符串,二者因轻量、通用、安全及浏览器原生支持成为数据交换事实标准。 JavaScript 中的 JSON 解析很简单,核心就是 JSON.pa…

    2025年12月21日
    000
  • javascript的机器学习如何入门_有哪些可用的JavaScript库

    JavaScript适合浏览器端轻量推理与教学,不宜训练大模型;推荐从线性回归、KNN等简单任务入手,优先掌握张量操作、模型流程及Chrome调试技巧。 JavaScript 做机器学习确实可行,但得明确一点:它不适合训练大型模型,更适合在浏览器端做轻量推理、数据预处理、教学演示或与 Web 应用集…

    2025年12月21日
    000
  • 为什么JavaScript的跨域请求受限制_有哪些方法可以实现跨域通信?

    JavaScript跨域受限源于浏览器同源策略,核心解决方案是后端配置CORS(含简单请求、带凭证请求及预检请求的响应头设置),开发期可用前端代理,无法改第三方接口时可服务端中转。 JavaScript 的跨域请求受限制,核心原因是浏览器的 同源策略(Same-Origin Policy)。它不是 …

    2025年12月21日
    000
  • 如何用Javascript进行自然语言处理?

    JavaScript可通过轻量库(如compromise、natural、wink-nlp)、云API(阿里云/腾讯云/百度NLP)或浏览器原生API(Intl.Segmenter)实现分词、情感分析等NLP任务,需依场景选型:前端重隐私与实时性,后端重模型集成与精度。 JavaScript本身不内…

    2025年12月21日
    000
  • JavaScript CORS是什么_如何配置服务器?

    CORS是%ignore_a_1%限制跨源请求的安全机制,需服务器返回Access-Control-Allow-Origin等响应头授权;常见报错提示请求被拦截,实为响应头缺失;配置时需注意Credentials与*互斥、预检请求处理等细节。 CORS(跨域资源共享)是浏览器的一种安全机制,用来限制…

    2025年12月21日
    000
  • javascript怎样进行机器学习?_javascript的TensorFlow.js如何使用?

    TensorFlow.js 是专为前端优化的轻量级 ML 库,支持浏览器实时推理、迁移学习、从零训练及加载 Python 模型;三步可跑通 MNIST 示例,实用中需注意模型大小、转换工具和后端加速。 JavaScript 本身不内置机器学习能力,但通过 TensorFlow.js(简称 TF.js…

    2025年12月21日
    000
  • WebAssembly与JavaScript_javascript性能提升

    WebAssembly通过二进制格式和接近原生的执行速度提升JavaScript性能。1. 代码体积小、解析快,适合高负载场景;2. 支持C/C++、Rust等语言编译,增强计算能力;3. 与JavaScript互操作,关键路径用Wasm,其余用JS处理。适用于图像视频编辑、游戏引擎、数据处理等场景…

    2025年12月21日
    000
  • javascript如何实现代码高亮_Prism.js的基本用法是什么

    Prism.js 是最轻量易用的 JavaScript 代码高亮方案,支持丰富语言和主题;需引入核心 CSS 和 JS,代码块须为 结构,按需加载语言或插件,并可手动调用 Prism.highlightAll() 处理动态内容。 JavaScript 实现代码高亮,最轻量、易用且支持丰富的语言和主题…

    2025年12月21日
    000
  • 如何用javascript实现数据可视化_有哪些库推荐?

    JavaScript数据可视化首选库依场景而定:快速展示用Chart.js,深度定制用D3.js,React项目选Recharts或Victory,大数据或3D需求选ECharts或Plotly.js。 用 JavaScript 实现数据可视化,核心是把数据转换成图形元素(比如柱状图、折线图、散点图…

    2025年12月21日
    000
  • 为什么需要javascript_它在前端开发中有多重要?

    JavaScript是前端开发的事实标准和运转中枢,负责实现网页交互、支撑现代框架、驱动浏览器原生功能、覆盖全栈生态。 JavaScript 是让网页“活起来”的核心语言,没有它,网站基本只是静态文档。 交互功能离不开 JavaScript 点击按钮弹出提示、表单实时校验、下拉菜单展开收起、图片轮播…

    2025年12月21日
    000
  • javascript如何实现自然语言处理?_javascript的NLP库有哪些选择?

    Natural 是一个轻量级 JavaScript NLP 库,提供分词、词干提取、文本分类、相似度测量和拼写检查等基础功能,适用于简单文本处理任务;compromise 则是无依赖、极简的语法解析库,支持中英文,适合浏览器环境。 JavaScript 本身不内置自然语言处理(NLP)能力,但可通过…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信