首页 > 编程语言 >如何在Django中创建一个简单的计算器应用程序

如何在Django中创建一个简单的计算器应用程序

时间:2023-07-03 09:04:08浏览次数:45  
标签:py 视图 Django 应用程序 计算器 home django

Django 是一个免费开源的 Python Web 框架,可帮助您快速开发安全且可维护的 Web 应用程序。

在本教程中,我将逐步指导您使用 django 创建计算器应用程序。

这是一个适合初学者的教程,因此如果您是 Django 新手,可以继续学习。

(更|多优质内|容:java567 点 c0m)

 

我们的计算器应用程序会是什么样子?

具有加、减、乘、除运算的计算器

您可以在此GitHub:/SampurnaC/calculator 存储库中获取完整代码。

如何设置 Django 计算器项目

假设您的系统上安装了 Django,我们现在将致力于创建项目。为此,您需要打开终端并使用以下命令:

 django-admin startproject calculator

此命令创建项目默认结构manage.py,其中包含 、 等文件,以及一个项目名称为包含settings.py、urls.py等文件的文件夹。我们将在开发应用程序时浏览这些文件。

项目创建完成后,我们需要将工作目录更改为项目目录。在 Linux 中,命令是cd calculator/.

下一步是创建一个calculatorapp使用以下命令命名的 Django 应用程序:

 python manage.py startapp calculatorapp

models.py该应用程序包含、views,py、admin.py、migrations等文件。

创建应用程序后,第一件重要的事情是将应用程序注册到文件INSTALLED_APPS列表中settings.py。

为此,您需要导航到settings.pyDjango 项目内的文件,即calculator本教程中的文件。该settings.py文件包含INSTALLED_APPS列表,您需要将应用程序名称添加到列表中。因此,该INSTALLED_APPS列表应如下所示:

 INSTALLED_APPS = [
     'calculatorapp',
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
 ]

现在应用程序已注册,我们已准备好处理该项目。

如何添加路线

现在,让我们开始添加路线。您需要urls.py在目录中创建一个文件calculatorapp。添加代码如下:

 from django.urls import path
 from . import views
 ​
 urlpatterns = [
     path('', views.home, name='home'),
 ]

在这里,您需要先导入pathfrom django.urls,然后再导入views。

在urlpatterns列表中,您需要传递您的视图函数,我们将很快创建该函数。

但首先,让我们将此应用程序 URL 文件注册到项目urls.py文件中。

因此,您需要打开urls.py计算器目录中的文件并添加以下代码:

 from django.contrib import admin
 from django.urls import path, include
 ​
 urlpatterns = [
     path('admin/', admin.site.urls),
     path('', include('calculatorapp.urls')),
 ]

这里,它包括 的 URL calculatorapp。如果您想为您的 添加任何新的 URL calculatorapp,您可以从文件中执行此操作calculatorapp/urls.py。

如何编写视图

现在,如果您尝试访问localhost:8000/URL,您将收到错误,因为它正在寻找home视图函数。/路线的视图函数是home,由于没有home视图,因此会出错。

访问根页面时终端出错

在 Django 中,有两种类型的视图:基于函数的视图和基于类的视图。在本教程中,我们将使用基于函数的视图,它们以def关键字开头。

要修复上述错误,您需要转到views.py其中的文件calculatorapp并创建一个home视图函数。

 def home(request):
     pass

如何将模板添加到应用程序

现在,如果您尝试访问该localhost:8000/URL,您将收到不同的错误。正如您从下面的屏幕截图中看到的,它正在寻找一些响应来返回。

浏览器查找视图响应时出错

pass因此,您需要渲染 HTML 模板,而不是像使用随机文本那样。模板用于呈现动态 HTML 内容。

 def home(request):
     return render(request, 'home.html')

正如您在视图中看到的home,它返回home.html模板。

现在,您需要在应用程序的根目录中创建一个模板文件夹,这calculatorapp在本教程中。

在此模板文件夹中,您需要创建一个home.html文件。

该home.html模板将包含带有不同计算器按钮的表单。

将home.html包含以下代码:

 <div class="center">
 <h1>Basic Calculator</h1>
 ​
 <form action="result">
     <input type="number" name="number1" placeholder="Enter first number">
     <br>
     <br>
     <input type="number" name="number2" placeholder="Enter second number">
     <br>
     <br>
     <button type="submit" name="add">Add</button>
     <button type="submit" name="subtract">Subtract</button>
     <button type="submit" name="multiply">Multiply</button>
     <button type="submit" name="divide">Divide</button>
 ​
 </form>
 </div>
 ​
 <style>
  .center {
     margin: auto;
     width: 60%;
     border: 3px solid #a5addb;
     padding: 10px;
  }
 </style>

上面的代码包含一个HTML带有两个输入字段和四个按钮的简单表单。有一些样式可以在中心显示代码并带有一些边框。

上面代码中需要注意的重要一点是<form action="result">,这意味着在提交表单时它将重定向到resultURL。

现在,如果您尝试在浏览器中执行任何操作,您将收到一个新错误,因为没有结果页面。

由于没有结果页面,按钮提交后抛出错误

如何添加结果页面的 URL

提交表单后,它正在寻找result path. 因此,下一步是创建视图result并为其添加模板和 URL。

更新后的urls.py文件如下:

 from django.urls import path
 from . import views
 ​
 urlpatterns = [
     path('', views.home, name='home'),
     path('result/', views.result, name='result'),
 ​
 ]

如何为结果视图添加模板代码

列表中的第二个 URLurlpatterns正在查找视图result。那么,我们现在就开始吧。首先,我将向您展示视图的代码result,然后解释每一行的作用。

 def result(request):
     num1 = int(request.GET.get('number1'))
     num2 = int(request.GET.get('number2'))
 ​
     
     if request.GET.get('add') == "":
         ans = num1 + num2
 ​
     elif request.GET.get('subtract') == "":    
         ans = num1 - num2
 ​
     elif request.GET.get('multiply') == "":    
         ans = num1 * num2
 ​
     else:
         ans = num1 / num2
 ​
     return render(request, 'result.html', {'ans': ans})

现在,我们来分解一下上面的代码:

  • 它从表单中获取的值number1和number2输入字段中获取值。

  • 然后它根据单击的按钮检查条件。

  • 由于所有按钮都有不同的名称,单击这些按钮会在 URL 中提供空字符串值。并在此基础上添加add、subtract、multiply和 的条件divide。

  • result.html它使用上下文呈现模板ans。Django 中的上下文是一个字典,其中包含可以传递给模板的键值对。

现在,您需要在文件夹result.html内创建一个文件templates并添加以下代码:

 <div class="center">
 The result is:
 <h1>{{ans}}</h1>
 ​
 <a href="{% url 'home' %}">Go Back</a>
 </div>
 <style>
  .center {
     margin: auto;
     width: 60%;
     border: 3px solid #a5addb;
     padding: 10px;
  }
 </style>

在这里,它显示 的值ans。它还包含home具有页面一些基本样式的 URL。

在 Django 中,双大括号{{}}用于显示变量的值。变量输出上下文中的值。

最后,我们完成了在 Django 中创建一个具有加法、减法、乘法和除法等基本功能的计算器应用程序。

结论

这是在 Django 中创建基本计算器应用程序的方法。

在本教程中,您了解了如何处理视图、模板、URL 以及使 Django 应用程序正常运行所需的配置。

我在这篇文章中没有讨论任何有关模型的内容。因此,如果您想将记录保存在数据库中,您可以进一步尝试。

我希望您觉得本教程有用。

(更|多优质内|容:java567 点 c0m)

标签:py,视图,Django,应用程序,计算器,home,django
From: https://www.cnblogs.com/web-666/p/17521844.html

相关文章

  • BackUpLogView 系列 - 主应用程序下载
     主应用程序下载   TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesianSlovakCzechItalianSlovenianDanishJa......
  • x64 架构,也称作AMD64或Intel 64,是指一种64位的处理器架构,是对x86架构的扩展和升级。x6
    x64架构,也称作AMD64或Intel64,是指一种64位的处理器架构,是对x86架构的扩展和升级。x64架构支持更大的内存寻址范围和更高的性能,适用于运行64位操作系统和应用程序。x64架构最早由AMD引入,并在2003年取得了广泛的市场认可。随后,Intel也推出了兼容x64架构的处理器。目前,绝大多数......
  • redirect-django-url-with-javascript
    https://www.appsloveworld.com/django/100/279/redirect-django-url-with-javascriptscore:3AcceptedanswerYoucanusethis:window.location.href="{%url'app:result'%}" score:1djangotemplatetagsworkinsidethedjangotem......
  • Django 网站允许外部访问的设置方法
    ​ Django学习过程中一般都是在本机上使用manage.pyrunserver命令启动开发用HTTP服务器,使用本机浏览器访问此服务器。那么如果需要在联网的其他电脑上访问这个Django服务器,则需要额外做一些设置,否则会显示无法连接或连接失败等错误。1.确认Django的开发服务器正在监听公共IP地......
  • Silverlight应用程序扩展服务
     使用应用程序扩展服务可以扩展Silverlight应用程序模型。通常使用扩展服务来封装特定功能域中由多个应用程序使用的功能。例如,可以使用扩展服务来实现专用媒体处理或自定义数据访问层。Application类提供多数应用程序共用的服务。有关更多信息,请参见应用程序服务。可以通过创......
  • Silverlight如何使用应用程序库缓存
     应用程序库缓存可在用户重新访问网站时帮助改善启动性能。当您使用应用程序库缓存时,Silverlight将某些程序集打包成应用程序包外部的外部部件(.xap文件)。应用程序包中的清单指定启动时所需的程序集,并指示它们是在应用程序包的内部还是外部。当用户首次访问您的网页时,Silverlight......
  • Silverlight应用程序服务
     当使用Silverlight的托管API创建应用程序时,必须创建一个从Application派生的类。Application类提供应用程序通常要求的若干服务。它主要表示应用程序代码在Silverlight插件生命周期中的入口点。Silverlight插件生命周期自用户导航到承载Silverlight插件的网页时开始......
  • 光脚丫学ASP.NET MVC(0001):创建ASP.NET MVC应用程序项目
    演示视频:http://u.115.com/file/cloa5hpg本演示介绍了如何使用VisualStudio2010创建ASP.NETMVC应用程序项目。下面是VS的新建项目对话框。其中红色线圈住的两个模板是VS2010安装时就自带的ASP.NETMVC2的项目模板,可以从官方网站下载最新的项目模板。下图是新建单元测试项目对话......
  • Django:单表查询之神奇的双下划线
    一、单表查询中双下划线运用案例models.Tb1.objects.filter(id__lt=10,id__gt=1)、#获取id大于1且小于10的值models.Tb1.objects.filter(id__in=[11,22,33])#获取id等于11、22、33的数据models.Tb1.objects.exclude(id__in=[11,22,33])#notinmodels.Tb1.objec......
  • ImportError:无法从“django.utils.encoding”导入名称“force text”[Python错误已解
    在软件开发过程中遇到错误是很常见的,在使用Python和Django时,这样的错误之一就是ImportError:cannotimportname'forcetext'from'django.utils.encoding'.forcetext此特定错误表明从模块导入方法时出现问题django.utils.encoding。缺少的方法用于将输入数据转换为一致......