这是一个实践教程,一步一步地指导我们如何使用Python Django和Bootstrap框架来创建一个发票应用程序,从头开始。这是一个令人兴奋的python学习项目,因为它将教会你这些重要的开发技能。
- 从Django创建一个PDF文档(对仪表板、SaaS网络应用程序开发很有用
- 构建一个仪表盘应用程序 - 用Django进行CRUD开发(创建、读取、更新和删除记录)。
- 从Django应用程序中发送电子邮件--包括将PDF文件附在电子邮件中
这个教程和我写的很多教程一样,都有一个跟随的youtube视频(如何用Django创建一个发票应用程序),你可以看一下,看看如何一步步地写代码。代码也可以在GitHub上找到--Django开票应用源代码。
因为这是一个涉及到的教程,所以我将以一个教程系列或部分来介绍这些步骤。一篇文章中涉及的内容太多,这是第一篇文章。在我发布的系列文章中,每篇新文章都会有一个视频和GitHub的代码链接。
我们将在教程的第一部分涵盖的内容是
- 如何获得开源的bootstrap 5仪表板HTML、CSS和JS的源代码
- 描述我们应用程序的客户旅程,客户将能够做什么
- 描述我们应用程序的设计历程,为应用程序的开发进行规划
- 为你的应用程序设计数据库
- 从头开始创建一个Django项目
- 在Django中建立我们的第一个模型--客户模型
- 下一个教程的家庭作业
Bootstrap5前端代码
我将在教程的最后提供这些代码,所以我在项目中只使用开源代码是很重要的(没有付费的主题和模板)。你可以从他们的网站上下载Bootstrap5的例子,开始使用 -下载Bootstrap5。
你可以把这些元素结合起来,创建一个像样的登陆页、登录页和仪表盘HTML,我们要使用的就是这个。
用Django开发的发票应用程序的客户旅程
客户通常是许多应用程序开发计划会议和开发头脑风暴会议的重点。我们需要了解应用程序的终端用户,他们想要实现什么以及他们想要解决什么问题。
如何创建一个发票应用程序
从本质上讲,我们的客户正在寻找一种经济实惠的方式来在线创建发票,将其打印出来或通过电子邮件发给客户。他们还想在一个地方记录他们的发票,跟踪他们开出的总金额,每个客户和一般的。客户还希望能够搜索发票,跟踪付款情况,甚至在他们没有收到付款时发送提醒。
这些客户需求构成了我们应用程序功能的基础,了解客户需求可以让我们更好地设计我们的Django应用程序。
我们可以将所有这些需求浓缩为一个视觉,让客户在我们的应用程序上的所有步骤都能实现。
客户旅程--Django发票应用程序
客户将能够(1)登录,(2)创建客户档案,(3)添加产品和服务,(4)创建发票,(5)打印或通过电子邮件发送发票,(6)在列表中查看发票并更新其状态--已付款、未付款、过期等。
使用Django的发票应用程序的设计之旅
在这个阶段,我们可以理解我们作为应用程序的设计者要经历的事情。了解Django架构--这些是我们要遵循的步骤。
设计之旅--Django发票应用程序
如果你是Django开发的新手,可以看看我之前关于Django开发的书面教程。我在这里涵盖了以下内容。
为Django开发票应用程序设计数据库
一旦我们了解了用户的旅程,也就更容易弄清楚如何设计我们的数据库。有些事情需要考虑。
- 我们需要哪些模型?
- 这些模型之间的关系是什么--主要的 "主导 "模型和辅助模型。我把这称为 "从属 "和 "主 "模型。主模型是主要的应用模型,理想情况下,你希望每个应用有一个主模型。如果你需要更多,你可以在同一个Django项目中创建另一个应用程序。然后,从属模型通常与主模型相关。
例如--见下图的开票应用。
Django开票应用程序的数据库设计
这里的主模型 将是发票模型。它是我们将创建的主要模型。模型也是数据库结构的基础,每个模型都是数据库中的一个表,表的列是模型中的变量,行是类的实例。
因此,发票模型将有诸如:发票号码、付款状态、付款指示、客户信息和产品信息。
客户信息--本身就是一个类,你需要为客户提供姓名、地址细节、联系人。它也是可重复使用的,因为你可以为同一个客户有多张发票。这样就有意义了,客户应该是一个模型。然而,这将是发票类的一个 "从属 "模型。
同样,产品/服务模型也可以与发票模型相关。在产品/服务模型中,我们可以描述我们所提供的具体产品和服务,我们将为其收费。
从头开始创建Django项目
这是教程中最简单的部分,事实上在视频中我沿用了之前的教程,在那里我已经详细介绍了如何在虚拟环境中,基于云服务器,从头开始创建一个Django项目。
任何人都应该能够得到一个云服务器,从digitalocean花5美元就可以得到一个。作为一个开发者,我不喜欢在学习或教学的时候,用随机的项目挤满我的个人电脑。
建立客户端模型
客户端模型将是我们今天做的最后一件事,至少它允许我们在谈了这么久之后写一些代码。谈话是很重要的,对于计划和确保我们写的代码是正确的。
有一句话是这样说的。
"如果我有8个小时去砍一棵树,我会花6个小时去磨我的斧头"
亚伯拉罕-林肯说。我们已经磨好了我们的斧头,我们知道我们的客户,他们想要什么,我们想要实现什么,让我们开始砍树吧。
创建一个模型文件并添加这段代码。
from django.db import models
class Client(models.Model):
PROVINCES = [
#Basic Fields
#Utility fields
def __str__(self):
def get_absolute_url(self):
def save(self, *args, **kwargs):
self.slug = slugify('{} {} {}'.format(self.clientName, self.province, self.uniqueId))
super(Client, self).save(*args, **kwargs)
raw.githubusercontent.com/skolo-onlin…
非常简单的模型--观看视频以深入回顾代码。
作业
完成产品/服务和发票的模型--显示它们之间的关系。我们将在下周继续进行下一期的学习。让我知道你的想法,请在下面或YouTube视频中留言。
Youtube视频
用Django和Bootstrap创建发票应用程序第一部分最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事来继续对话。