Using Django and Vuejs to create a web application on IRIS: Peeking into the Django framework

wufei123 2025-01-26 阅读:3 评论:0
很长一段时间以来,我一直想学习 Django 框架,但另一个更紧迫的项目始终占据优先地位。和许多开发人员一样,我在机器学习方面使用 Python,但当我第一次学习 Web 编程时,PHP 仍然占据主导地位,所以当我需要选择一个新的复杂框架...

using django and vuejs to create a web application on iris: peeking into the django framework

很长一段时间以来,我一直想学习 Django 框架,但另一个更紧迫的项目始终占据优先地位。和许多开发人员一样,我在机器学习方面使用 Python,但当我第一次学习 Web 编程时,PHP 仍然占据主导地位,所以当我需要选择一个新的复杂框架来创建 Web 应用程序来发布我的机器时学习工作中,我还是转向了PHP。一段时间以来,我一直在使用名为 Laravel 的框架来构建我的网站,这个 PHP 框架向我介绍了现代 Web 编程的模型-视图-控制器模式。让事情变得更加复杂的是,我喜欢使用现代 JavaScript 框架构建我的前端。我最熟悉 Vue.js,因此对于这个项目,我坚持使用 Vue.js,尽管更常见的是人们使用 React。

为什么要使用复杂的框架?学习 Django、Laravel、React 或 Vue 等框架的最大挑战是什么?

每个人都有自己的答案,但我越来越喜欢 MVC 框架,因为它们提供了很多关于如何构建应用程序的指导。它使我不必每次都重新发明轮子。起初,这些框架看起来有些限制和神秘,但一旦我熟悉了结构,我发现添加新功能会更容易。

挑战在于事情可能变得过于简单。像 Django 这样的框架依赖于许多速记或假设,这些速记或假设可能基于熟悉的概念,但在 Django 中具有特定的不熟悉的名称和结构。在我的应用程序中,Django 处理 API 和所有 Web 路由。如果我想添加新的 API 端点,我需要将一个函数添加到 view.py 中的文件中,然后转到 urls.py 文件并添加一条语句来导入该函数,并添加另一条语句来定义该函数所在的 URL。 API端点可用。之后,我需要编辑前端 Vue 组件以使用 javascript 查询该端点以获取数据并向用户显示或操作它。 

一旦我的项目建立起来,添加这样的功能很快。我只需要添加大约四行代码,然后我就可以专注于views.py 文件中新函数所需的逻辑,以处理 HTTP 请求并以 JSON 格式返回所需的数据。具有挑战性的部分是了解这些文件是什么以及它们如何协同工作来创建整个应用程序。

我发现学习像 Django 这样的框架的最佳方法是找到一个工作示例并开始尝试进行小的更改以了解数据流。当概念开始变得更加清晰且更有意义时,请参阅文档。要求人工智能模型解释代码片段以及框架中不同标准文件的作用。很快我们就会意识到这些工具的出现是为了从长远来看节省时间并简化应用程序的维护和更新。由于 Django 和 Vue 框架具有标准结构,因此当您稍后再回顾它们时,您会发现更容易理解为什么以某种方式编码,并且更容易重新熟悉您的工作。由于您熟悉他们的应用程序的基本结构,因此更容易学习别人的应用程序并理解核心功能。 

那么 Django 的一些基础知识可以帮助人们入门吗?对我来说,首先要了解的是,Django 项目是通过运行命令来创建新的 Django 项目而生成的,这会生成一组基本文件和文件夹,这些文件和文件夹构成了可用于开始构建的“基础项目”。项目文件夹将包含几个 python 文件,其中的设置适用于整个项目。您会发现自己经常访问的重要文件是 settings.py(所有设置都在其中)和 urls.py。当您有“Django 如何决定将静态文件放在哪里”之类的问题时,答案通常位于 settings.py 中的某个位置。当您想要向应用程序添加新 URL 时,您需要更新 urls.py 文件。 

除了这些项目级文件之外,您还可以为项目中的每个应用程序创建一个文件夹。然后需要在 settings.py 文件中注册(即命名)这些应用程序。我的项目中的主应用程序文件夹称为文档。在该文件夹中,我有一个 models.py 文件、一个 serializer.py 文件、一个views.py 文件。还有其他的,但这是重要的三个。

在 models.py 中,我指定了我的 Document 对象及其具有的字段。 Django 帮我在 IRIS 数据库中创建一个 Documents 表,其中包含保存我计划存储在 Document 对象中的信息所需的架构。在我的 models.py 文件中,我告诉它我的文档都有一个名称(不超过 255 个字符的字符串)、一个内容字段(只是大量文本)以及一个数据库名称(其中向量)存储(另一个文本字段)、嵌入类型(另一个文本字段),最后是向量嵌入维度(一个数字)。使用这些定义,Django 创建具有必要列类型的必要数据库表。将对象保存到数据库就像 Document.save() 一样简单。

serializer.py 文件内部只是一个关于如何将对象转换为 JSON 的定义,反之亦然。对于基本用例,有一个标准方法来定义它,您可以在这个项目中看到它。

现在我们进入 Django 的重点,views.py 文件。我们在这里定义接受 HTTP 请求并返回数据(例如整个 HTTP 响应)或 JSON API(如果是 JSON API)的函数。这意味着 Django 可以提供整个网页,也可以作为您应用程序的前端,或者它可以只提供 JSON 数据,您可以在完全不同的平台上构建您的前端。

一开始使用所有这些看似任意的文件和约定可能会让人感觉很麻烦,但是一旦您发现这样做意味着您的应用程序刚刚开始工作并处理 HTTP 请求并提供正确的数据作为响应,它就可以不断构建新的特性和功能是非常有趣的。一旦您定义了一个对象、Web 路由和函数来处理 HTTP 请求,您就会意识到定义第二个和第三个对象来向应用程序添加功能是多么容易。

我从 github 上的 @guillaume.Rongier7183 创建的 Iris Django 模板中分叉了我的项目:https://github.com/grongierisc/iris-django-template

该模板仅包含 Django,对于学习 Django 框架非常有帮助。 我所做的主要添加之一是添加带有 Tailwind CSS 的 Vue.js,以表明您可以将现代 Javascript 框架与此包集成,并在 IRIS 上运行单页应用程序。单页面应用程序是一个 JavaScript 应用程序,它发送 xhr 请求以获取 JSON 数据并动态更新页面,而无需完全重新加载页面。它有其优点和缺点,但它是现代 Web 开发的标志。

我鼓励人们不仅将我的项目视为 IRIS 上的 RAG 和 Vector Stores 的示例,而且将其视为使用 Django 与 Vue.js 和 Tailwind 的模板,以便在其之上轻松快速地创建现代灵活的 Web 应用程序虹膜。该存储库位于 Github 上:https://github.com/mindfulcoder49/iris-django-template

我很乐意回答任何问题或提供任何见解,以了解任何人在尝试调整此项目以供自己使用时可能遇到的任何问题。

以上就是Using Django and Vuejs to create a web application on IRIS: Peeking into the Django framework的详细内容,更多请关注知识资源分享宝库其它相关文章!

版权声明

本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 华为 Mate 70 性能重回第一梯队 iPhone 16 最后一块遮羞布被掀

    华为 Mate 70 性能重回第一梯队 iPhone 16 最后一块遮羞布被掀
    华为 mate 70 或将首发麒麟新款处理器,并将此前有博主爆料其性能跑分将突破110万,这意味着 mate 70 性能将重新夺回第一梯队。也因此,苹果 iphone 16 唯一能有一战之力的性能,也要被 mate 70 拉近不少了。 据悉,华为 Mate 70 性能会大幅提升,并且销量相比 Mate 60 预计增长40% - 50%,且备货充足。如果 iPhone 16 发售日期与 Mate 70 重合,销量很可能被瞬间抢购。 不过,iPhone 16 还有一个阵地暂时难...
  • 酷凛 ID-COOLING 推出霜界 240/360 一体水冷散热器,239/279 元

    酷凛 ID-COOLING 推出霜界 240/360 一体水冷散热器,239/279 元
    本站 5 月 16 日消息,酷凛 id-cooling 近日推出霜界 240/360 一体式水冷散热器,采用黑色无光低调设计,分别定价 239/279 元。 本站整理霜界 240/360 散热器规格如下: 酷凛宣称这两款水冷散热器搭载“自研新 V7 水泵”,采用三相六极马达和改进的铜底方案,缩短了水流路径,相较上代水泵进一步提升解热能力。 霜界 240/360 散热器的水泵为定速 2800 RPM 设计,噪声 28db (A)。 两款一体式水冷散热器采用 27mm 厚冷排,...
  • 惠普新款战 99 笔记本 5 月 20 日开售:酷睿 Ultra / 锐龙 8040,4999 元起

    惠普新款战 99 笔记本 5 月 20 日开售:酷睿 Ultra / 锐龙 8040,4999 元起
    本站 5 月 14 日消息,继上线官网后,新款惠普战 99 商用笔记本现已上架,搭载酷睿 ultra / 锐龙 8040处理器,最高可选英伟达rtx 3000 ada 独立显卡,售价 4999 元起。 战 99 锐龙版 R7-8845HS / 16GB / 1TB:4999 元 R7-8845HS / 32GB / 1TB:5299 元 R7-8845HS / RTX 4050 / 32GB / 1TB:7299 元 R7 Pro-8845HS / RTX 2000 Ada...
  • python怎么调用其他文件函数

    python怎么调用其他文件函数
    在 python 中调用其他文件中的函数,有两种方式:1. 使用 import 语句导入模块,然后调用 [模块名].[函数名]();2. 使用 from ... import 语句从模块导入特定函数,然后调用 [函数名]()。 如何在 Python 中调用其他文件中的函数 在 Python 中,您可以通过以下两种方式调用其他文件中的函数: 1. 使用 import 语句 优点:简单且易于使用。 缺点:会将整个模块导入到当前作用域中,可能会导致命名空间混乱。 步骤:...
  • python中def什么意思

    python中def什么意思
    python 中,def 关键字用于定义函数,这些函数是代码块,执行特定任务。函数语法为 def (参数列表)。函数可以通过其名字和圆括号调用。函数可以接受参数作为输入,并在函数体中使用参数名访问。函数可以使用 return 语句返回一个值,它将成为函数调用的结果。 Python 中 def 关键字 在 Python 中,def 关键字用于定义函数。函数是代码块,旨在执行特定任务。 语法 def 函数定义的语法如下: def (参数列表): # 函数体 示例 定义...