百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

第2天 | Django3.0项目实战,项目详解

liuian 2024-12-17 15:01 15 浏览

一个销售管理系统,由基础数据、员工信息、客户管理、产品管理、销售统计等功能组成,你若想一个人轻轻松松地开发完成,那我建议你采用Django3.0。

Django3.0用命令即可生成麻雀虽小五脏俱全的项目文件sales(系统架构),还可用命令生成功能模块(base),程序员可通过配置项目文件,将功能模块组合在一起。欲开发功能,先熟悉项目文件。

2.1 项目文件

两个sales文件,外层的sales,是存放项目内容的文件夹,这个名称可以随意更改,只要你喜欢就行。内层sales包含的settings.py、urls.py等文件,加上manage.py,便是Django的系统框架了。

__init__.py:内容一般是空的,常用来声明(它)所在之处的文件夹(sales)是个包;

settings.py:包括了项目的初始化设置,对整个项目进行相关配置,比如数据库连接参数、添加应用等;

asgi.py:构建异步Web界面和处理双向协议的新方式,是Django3.0版本新出的异步功能;

urls.py:url地址秀,网站目录,配置简单容易理解,可把用户在浏览器中发出的请求,映射到指定的应用程序上;

wsgi.py:告诉中间件(Apache或nginx):帮我运行Django开发的项目吧,我滴乖乖。开发过程中很少用到;

templates:存放HTML模板文件;

manage.py:Django的任务管理命令行工具。可用来生成数据库迁移文件,同步表结构,生成App等,是项目中的管家。

2.2 应用文件

在项目(sales)中的应用base,实际上是我们接下来要开发实现的销售管理系统中的基础数据功能模块来的。在base下的文件,无论你想不想都要搞清楚。

migration:存放数据表结构的指令文件,通过它们可以修改和创建数据库,从而在models.py模型类和数据库表之间进行迁移;

__init__.py:内容有时不是空的,它来声明base文件夹是个包;

admin.py:应用的连接,配置model,连接Form,声明在Django自带的后台管理系统;

apps.py:通常里面包含对应用的配置,如应用名称;

models.py:实体类定义,会生成对应的数据库表结构。同时还具备操作数据库的能力(API),省去手动编写增删改查的重复工作;

tests.py:单元测试工具,可以编写测试文档来测试所建立的应用;

views.py:虽然从名字上看是视图的意思,实际上是逻辑控制用的,同web页面交互,与models交流,协调整个系统有条不紊的动作。

2.3 MVC和MVT

一个软件产品,在进入开发阶段时,会先进行系统分析,分析的结果,最少包含3方面的内容(实际上肯定不止),有数据库表结构(或实体类)、有业务流程图,还有界面效果图,而这三方面一般是由不同的人负责的。

专业的人做专业的事,才能提高工作效率,才能把活干得更好。再说,一个人拿一份工资,也不愿意干几份活呀。正因为此,MVC, 模型(model)-视图(view)-控制器(controller)模式运势而生。

M(模型,Model):对数据逻辑内容进行处理,对数据库表中的数据进行增删改查操作。一般由程序猿负责开发实现,不一般的话,由老板自己完成,那还请你做什么?实体类(或表结构)由DBA设计,如果有这个岗位的话。

V(视图,View):处理数据显示(在界面上)的职责。由设计师负责,他们经常会对界面进行设计、设计、再设计。

C(控制器, controller):从视图读取数据,控制用户输入,向模型发送数据并最终导向视图(进行展示)。也是程序猿负责,这就是导致他们秃顶的原因之一。

现在几乎所有Web框架都基于MVC模式而设计,Django也不例外。只是为了彰显不同的地位,Django特意采用了MVT模式。

MVT实际上和MVC是一致的,其中M是Model(模型),V(Views)是控制器,而T(templates)相当月MVC中的V,换汤不换药,只是叫法不同而已。

2.4 Django运行

在Django框架中,文件虽然不多,但完全有必要搞清楚它们的运行机制,否则开发了大半天的功能,还说不清道不明子丑寅卯的话,是会被人笑掉大牙的。

用户通过浏览器访问应用系统,中间件接受到请求之后,判断其访问的地址,接着:

1. 调用Django通过在ROOT_URLCONF配置来决定根URLconf;
2. Django在URLconf中的所有URL模式中,查找第一个匹配/地址/的条目;
3. 如果找到匹配,将调用相应的视图函数;
4. 视图函数返回一个HttpResponse;
5. Django转换HttpResponse为一个适合的HTTP response,以Web page显示出来。

好了,有关Djangon3.0项目详解的内容,老陈讲完了,下一节进入Django开发流程。如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我在分享Python,前端、Java和App方面的干货。关注我,没错的。

#Python##Django##程序员##Web##项目实战#

相关推荐

HR必备Excel函数:4个与日期相关的计算函数。

提到日期函数,很多人首先会想到“today”,它可以显示当天的日期,并且每次打开表格时都会自动更新。但是,对于前天、昨天、明天和后天的日期,就不能用yesterday或者tomorrow等这些英文了,...

这篇文章有点长,但可以让你十分钟玩转Excel的时间函数

日期与时间函数——TODAY、NOW、YEAR、MONTH、DAY!如何用WORKDAY函数查询距离某天的第20个工作日是哪一天?如何用NETWORKDAYS函数查询员工工作了多少个工作日?如何用WE...

Excel2020年日历套装,表格设计,农历显示,查阅套打轻松应用

Hello大家好,我是帮帮。今天跟大家分享一组Excel2020年日历套装,表格设计,自带农历控件,查阅套打轻松应用。有个好消息!为了方便大家更快的掌握技巧,寻找捷径。请大家点击文章末尾的“了解更多”...

巧用NETWORKDAYS函数计算两个日期之间工作日的天数

带有日期的单元格是我们日常使用EXCEL的时候经常见到的,有的时候我们需要求出两个日期之间间隔的天数,可以直接用结束日期减去开始日期即可,这是个非常简单的减法公式。不过这个单纯的减法公式会默认去掉开始...

Excel按工作日、休息日进行汇总

1、按周六日/其它时间汇总为了区分一周的周六日和其它时间,可以使用WEEKDAY函数,把WEEKDAY函数的第2个参数指定为2,如WEEKDAY(A3,2),则周一返回1,周二返回2,…,周六返回...

如何计算每月应出勤天数,如有法定假期和调休,如何计算

本文介绍如何计算每月的应出勤天数。第一部分介绍正常双休制下计算应出勤天数;第二部份介绍当月有法定假期和调休的情况下计算应出勤天数。一、计算正常双休制的应出勤天数如下图所示,要求计算各员工2021年3月...

《Excel一键生成工作日历:让会议排期更轻松!》

每当需要安排会议时,总要翻看日历确认工作日,再逐个标注会议时间,既耗时又容易出错。今天教大家用Excel快速生成工作日历表,让会议排期变得简单高效!一、快速生成日历框架创建基础日期:在A1单元格输入月...

如何计算指定日期区间内,有多少工作日和休息日?

大家好,今天咱们要解决的问题是如何计算给定的一段日期内,正常工作日有多少天,放假时间有多少天?比如咱们要计算2025年3月份工作日一共有多少天,又有多少天放假,如下图所示:通过肉眼我们可以数清楚,20...

如何如何在表格中自动突出显示双休日?

现在不少人喜欢用Excel来制作备忘录或安排工作事项。在表格中输入日期后,可以使用条件格式突出显示双休日,避免在休息日安排了工作。具体方法是这样的:第1步:选择要设置条件格式的日期单元格区域;在“开始...

excel函数技巧:networkdays.intl判断节假日

如图,想知道6月的每一天是否是节假日,公式如下:=NETWORKDAYS.INTL(A2,A2,1,$E$2:$E$28)这个函数既可以判断当前日期(一参=二参)是否是周末及工作日(三参、四参)还可得...

仅需3步,让考勤表根据实际休息日,自动地填充颜色

Hello,大家好,之前跟大家分享了我们如何让考勤表根据单休与双休自动的填充颜色,最近有粉丝问到:能不能让考勤表根据实际的休息日自动的填充颜色呢?可以是可以,只不过因为牵扯到假期调休,我们每年的休息日...

5步搞定动态考勤表!标记节假日、调休日?Excel自动变色!

今天教你用「动态考勤表」一招解决所有问题!只需输入月份,自动变色、自动更新节假日,从此告别加班,效率翻倍!动态考勤表的优势:自动变色:节假日、双休日一键标记,颜色分明。一表多用:修改月份即可...

一起用python做个炫酷音乐播放器,想听啥随便搜

前言前段时间写的Python自制一款炫酷音乐播放器,有不少小伙伴私信我,对播放器提了不少改进建议,让我完善播放器的功能。今天音乐播放器2.0版本完成了,大家一起来看看是如何用python自制一款炫酷的...

用Python做个“冰墩墩雪容融”桌面部件(好玩又有趣)

桌面太单调?今天就带大家,一起用Python的PyQt5开发一个有趣的自定义桌面动画挂件,看看实现的动画挂件效果!下面,我们开始介绍这个自定义桌面动画挂件的制作过程。一、核心功能设计实现将动态图gif...

Python串口调试助手源码分享

以下是一个基于Python和PyQt5实现的串口调试助手示例,包含核心功能实现代码:pythonimportsysimportserialfromPyQt5.QtCoreimportQTim...