django开源电子文档管理系统_Django简介、ORM、核心模块

news2024/11/23 15:46:34

Django简介

    Django是一种开源的大而且全的Web应用框架,是由python语言来编写的。他采用了MVC模式,Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。并于 2005 年 7 月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。

Django版本

至今Django版本已经更新到Django3.0.5,官网下载https://www.djangoproject.com/download/

Django优点

强大的数据库功能

    用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

自带强大的后台功能

    在admin.py中写入需要实现功能的代码,几行简单的代码就可以实现你当管理员的梦。再也不用为设计管理员而发愁了!

优雅的网址

    在urls.py中用正则匹配网址,传递到对应的函数,随意你自己定义,网址可以如你所想,如你所愿。(需要注意的是:正则是一种独立的语法,并不是哪个语言所拥有的。)

具有模板系统

    模板系统大大的降低了开发者头疼脑热的概率。因为模板系统设计简单,容易扩展。代码,样式分开设计。查找更清晰,修改更容易!

缓存系统

    Django和memcached、redis或者其他的缓存系统联用,提高了页面的加载速度。让用户的体验度更好了!

templates 文件夹views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。

国际化

    这么好的东西,想不走上国际化都难啊。想要网页显示不同语言,比如中文、英文、还有各种语言。只需要在一个文件的设置中稍微那么修改一下。页面就会穿上各种语言的外衣。

Django 的 App 理念很好。

    App 可插拔,是不可多得的思想。不需要了,可以直接删除,对系统影响不大。

怎么样?Django是否强大到不可想象的地步了?不过大家也不用高兴的太早了。因为代码还是要写的,只不过用上了Django开发网站的时候更快速,更便捷了而已!

Django具有以下特点:

  • 功能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,无须你自己定义、组合、增删及修改。但是,在有些人眼里这被认为是‘臃肿’不够灵活,发挥不了程序员的主动能力。(一体机和DIY你更喜欢哪个?^-^)
  • 完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和完善的在线文档(可惜大多数为英文)。开发者遇到问题时可以搜索在线文档寻求解决方案。
  • 强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。当然你也可以不用Django自带的ORM,而是使用其它访问技术,比如SQLALchemy。
  • 灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。
  • 丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签。
  • 自带免费的后台管理系统:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。
  • 完整的错误信息提示:在开发调试过程中如果出现运行错误或者异常,Django可以提供非常完整的错误信息帮助定位问题。

好了,开始正式跟大家说MVC 、MVT、ORM

大部分开发语言中都有 MVC

MVC 框架的核心思想是: 解耦.即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用

M 表示 model,主要用于对数据库层的封装

V 表示 view,用于向用户展示结果

C 表示 controller,是核心,用于处理请求、获取数据、返回结果

M代表的是模型(Model), V代表的是视图(View), C代表的是控制(Contrle)

MVT

Django 是一款 python 的 Web 开发框架

与 MVC 有所不同,属于 MVT 框架(是不是跟没说一样?不过我真的找不到更合适的语句了)

M 表示 model,负责与数据库交互

V 表示 view,是核心,负责接收请求、获取数据、返回结果

T 表示 template,负责呈现内容到浏览器

什么是ORM?

c2f358b36fbbeb14842d38523a695515.png

给大家一个图吧:

9edd612f2ef09fb794da4f658d22f284.png

最后在给大家说一下Django中的核心模块:在坚持一下就看完了

Django核心模块

urls.py

网址入口,关联到对应的 views.py 中的一个函数(或者 generic 类),访问网址就对应一个函数。小心在设置函数的时候写错单词哦!

views.py

处理用户发出的请求,从 urls.py 中对应过来, 通过渲染 templates 中的网页可以将一些想要看到的内容输入到网页上。

models.py

与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。

forms.py

表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作。

templates 文件夹

views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。这么好的东西,不用确实可惜!

admin.py

后台,这个就是可以用很少代码就能实现后台管理的神奇东东

settings.py

Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。

结语

总之,Django的功能很强大,包括DRF等一些框架,要学的还有很多。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1893653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模型优化Roof-line模型的使用

一、目录 定义求模型的计算强度,绘制屋檐模型,并分析绘制多级缓存的屋檐模型计算模型计算强度、工具A100显卡下模型分析分析如何提高模型的计算强度 二、实现 定义: Roof line Model(屋檐模型):模型在一个计算平台的限制下,到底…

Python番外篇之代码编译与字节码

引言 关于字节码,不太想讲,不影响实际使用,对新手不友好…… 但是,涉及到新手经常碰到的问题的解惑,似乎又不得不讲。 最终,还是打算以番外篇的形式,稍微提一下。 不过,关于字节码的…

恒创科技:HTTP错误码403禁止意味着什么,怎么修复它?

HTTP错误码403禁止意味着客户端无权访问特定网页或服务器。403 错误表示客户端存在问题,无论用户使用的是哪种网络浏览器,都可能发生这种情况。幸运的是,阻止服务器允许访问特定页面的问题通常可以修复。以下是一些常见原因和相应的解决方案。…

Playwright之录制脚本转Page Object类

Playwright之录制脚本转Page Object类 设计思路 : 我们今天UI自动化设计的时候,通常会遵循一些设计模式,例如Page Object模式。但是自己找元素再去填写有一些麻烦,所以我们可以通过拆解录制的脚本,将其中的元素提取出来…

行业洞察 | 2024应用程序安全领域现状报告

在信息爆炸的时代,我们每天都在使用各种应用,从社交娱乐到工作学习,应用已经成为我们生活中不可或缺的一部分。然而,你是否知道,在这些便捷的背后,隐藏着巨大的安全风险? 近年来,应用…

爬虫-网页基础

HTML 基本语法 HTML&#xff1a;Hyper Text Markup Language, 超文本标记语言&#xff0c;是计算机语言的一种&#xff0c;由元素构成。 p元素 <p>Web 真好玩&#xff01;</p> 由三大部分组成 开始标签&#xff1a;一对尖括号中间包裹这元素名称元素内容&#x…

中霖教育怎么样?注册会计师可以跨省考试吗?

中霖教育怎么样?注册会计师可以跨省考试吗? 1. 考试地点安排&#xff1a; 注册会计师考试是在全国范围内统一举行的&#xff0c;通常设在各省、自治区和直辖市指定的考区。考生须依据准考证上提供的信息&#xff0c;核实自己的具体考试地点。该考试实行的网上统一报名制度&…

mpeg格式怎么转换成mp4?这四种转换方法非常好用!

mpeg格式怎么转换成mp4&#xff1f;在数字视频领域中&#xff0c;MPEG格式算是相对冷门的一种选择&#xff0c;然而&#xff0c;选择这种格式却不是没有代价的&#xff0c;首先&#xff0c;MPEG采用了有损压缩技术&#xff0c;这意味着在视频处理过程中&#xff0c;会丢失一些细…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展&#xff0c;体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上&#xff0c;一项革命性的技术——高精度定位&#xff0c;正悄然改变着比赛的每一个细节&#xff0c;为球迷们带来前所未有的观赛享受&#xff0c;同时也为运…

Linux Shell 脚本入门教程:开启你的自动化之旅

目录 一、什么是Shell&#xff1f; 二、 编写第一个Shell脚本 ​编辑 2.2 变量 2.3 功能语句 2.4 数组 一、什么是Shell&#xff1f; Shell是一种计算机程序&#xff0c;它充当了用户与操作系统之间的接口。在Linux系统中&#xff0c;Shell允许用户通过命令行界面&#x…

揭开梵蒂冈秘密档案馆的神秘面纱

关注我们 - 数字罗塞塔计划 - PART 01 深邃的历史 梵蒂冈秘密档案馆起源于公元8世纪&#xff0c;负责保存官方文书和教皇书信。9世纪开始在圣彼得大教堂设立档案库&#xff0c;负责保管外交和法律文件&#xff0c;在帕拉蒂诺山塔内保存经济和行政方面的档案。11至13世纪&…

3.2ui功能讲解之graph页面

本节重点介绍 : graph页面target页面flags页面status页面tsdb-status页面 访问地址 $ip:9090 graph页面 autocomplete 可以补全metrics tag信息或者 内置的关键字 &#xff0c;如sum聚合函数table查询 instante查询&#xff0c; 一个点的查询graph查询调整分辨率 resolutio…

在地图上根据经纬度,画一个矩型围栏,设置每个点的经纬度

在做一个需求时有一个小点就是添加一个配送区域(5公里直径内的)矩形围栏 我做的比较简单 大家看看有没有帮助, 也是精简代码。测试效果上相对是精准的 //谷歌&#xff0c;根据经纬度获取以它为中心半径为5公里内的矩形的四个点经纬度getDefalutPoints (lng: number, lat: num…

【SpringCloud】Ribbon源码解析

ribbon是一个负载均衡组件&#xff0c;它可以将请求分散到多个服务提供者实例中&#xff0c;提高系统的性能和可用性。本章分析ribbon是如何实现负载均衡的 1、LoadBalanced 消费者在引入ribbon组件后&#xff0c;给http客户端添加LoadBalanced注解就可以启用负载均衡功能。Lo…

LangChain 入门上篇:模型 I/O 封装

LangChain 是面向大模型的开发框架&#xff0c;是 AGI 时代软件工程的探索和原型。学习 LangChain 需要关注接口的变更。 LangChain 的核心组件 1.模型 I/O 封装 LLMS 大语言模型Chat Models 一套基于 LLMS&#xff0c;但按对话结构重新封装PromptTemplate 提示词模板Output…

Unity中TimeLine的一些用法

Unity中TimeLine的一些用法 概念其他 概念 无Track模式&#xff08;PlayableAsset、PlayableBehaviour&#xff09; 1. 两者关系 运行在PlayableTrack中作用 PlayableBehaviour 实际执行的脚本字段并不会显示在timeline面板上 PlayableAsset PlayableBehaviour的包装器&#x…

uboot run命令基本使用

run 命令可以用于运行环境变量的中定义的命令,run bootcmd 可以运行bootcmd中启动命令 作用:可以运行我们自定义的环境变量 include/command.h common/cli.c /*** board_run_command() - Fallback function to execute a command** When no command line features are enabled …

性能测试-JMeter学习

1、给不同的访问口分配访问占比&#xff1b;例&#xff1a;登录30%&#xff0c;首页&#xff1a;20%&#xff0c;新增&#xff1a;50% 不同业务放到不同线程组里&#xff0c;实现不同业务的分配 使用吞吐量控制器&#xff0c;设置不同的占比 使用if控制器&#xff0c;设置不同…

mac鼠标键盘共享:ShareMouse for Mac 激活版

hareMouse 是一款 Windows 和 macOS 操作系统上的共享和切换鼠标和键盘的实用工具。这款软件允许用户在多台计算机之间无缝地共享鼠标和键盘&#xff0c;使得在不同设备之间进行工作和操作变得更加便捷。占用资源少&#xff1a; ShareMouse 设计轻量&#xff0c;占用系统资源较…

Logback日志配置两种方式

SpringBoot 默认使用的是Logback 1. 在resource新建文件logback-spring.xml&#xff0c;配置日志相关信息 <configuration><property name"app.name" value"order-service"/><property name"log.path" value"./logs/"…