当前位置: 首页 > 网络应用技术

Django知道该项目有多少个应用程序(2023年最新分享)

时间:2023-03-08 00:18:52 网络应用技术

  简介:今天,首席执行官注意到与您分享Django的相关内容知道多少应用程序。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  1.首先,为您的应用程序(fileapp)创建Django Project目录外的文件夹,命名为Django-fileupload

  2.将FileAPP文件文件夹移至Django-Fileupload目录

  3.创建django-fileupload/readme.rst文件以输入以下相关内容

  4.创建一个许可证文件,即django-freeupload/livense,输入livense,如果不是的话,请转到github自动生成生成生成

  5.然后,创建一个django-fileupload/setup.py文件,以提供有关如何创建和安装此应用程序的一些详细信息。内容如下:

  6.默认情况下,包装中只有Python模块和袋子。如果要包含其他文件,我们需要创建一个清单。内容如下

  7.以下建议包括有关您的应用程序的一些详细信息。创建一个空文件夹,命名文档,然后在django-fileapp/sustest.in中添加一行。

  注意:此文档目录将不包含在包中,除非您添加一些文件以输入

  8.最终执行包装操作,执行python setup.py sdist(需要在django-fileApp文件夹中执行),应使用称为dist的文件夹添加django-fileApp/,该文件夹将生成一个package-django-fileApp-0.tar.gz

  9.安装

  如果不足为奇,您的应用程序应该能够正常执行

  10.卸载

  11.安装后查看应用程序信息,例如安装路径

  我也是一个新手,我学会了自己的理解,因为base_dir是获得该项目的配置根目录文件夹。django不会使用一个文件夹查找项目配置目录文件夹。添加到“环境变量”的此文件夹路径,也就是说,添加sys.path.insrt in sys.path.insrt(0,os.path.join(base_dir,,base_dir,,,'apps')插入当前环境变量,OS.Path.join()是使用帮助(OS.Path.join)在Python命令行下查看添加路径。您需要导入OS软件包。如果您可以帮助您,请采用它

  模型是Django项目的基础。如果起初设计不当,那么在下一个开发过程中将遇到更多问题。或修改模型。这样做的后果是,在下一个开发过程中,我们必须做更多的努力来纠正这些错误。

  因此,在修改模型时,我们必须尽可能多地考虑!以下是我们经常使用的一些工具和技术:

  南方,对于数据迁移,我们将在每个Django项目中使用它。但是,当Django 1.7时,将会有Django.db。移民。

  Django-Model-Utils,用于处理常见模式,例如TimessTampedModel。

  django-extensions主要使用shell_plus命令,该命令将自动加载所有应用程序中的所有应用程序

  1.基本原则

  首先,在不同的应用程序中分发模型。如果您的Django项目中有20多个型号,则应考虑旋转该应用程序。我们建议每个应用程序的模型不超过5码。

  其次,尝试使用ORM。我们需要的大多数数据库索引都可以通过对象相关模型来实现,ORM为我们带来了许多快捷方式,例如生成SQL语句,读取/更新数据库时的安全验证。因此,如果您可以使用简单的ORM语句,则应尝试尽可能多地使用ORM。只有当纯SQL语句大大简化ORM语句时,才使用纯SQL语句。并且,在编写纯SQL语句时,应优先使用RAW()然后使用frain()。

  第三,如有必要,添加索引。添加db_index = tum tum to to Model非常简单,但是很难理解何时应该添加它。建立模型后,我们不会提前添加索引。索引:

  当所有数据库查询中的使用率为10%-25%时

  或当有真实数据时,或者可以正确估计使用索引后的效果确实令人满意

  第四,请注意模型的继承。该模型的继承需要在Django中非常谨慎。Django提供了三种继承方法,1。Abstract Base类继承(请勿与Pyhton Standard库的ABC模块混合),2。Multi -Table(Multi -Table(Multi -Table(Multi -Table)模型继承。下表列出了这三个继承的优点和缺点:

  Django的创建者和许多其他开发人员认为,多观看继承方法不是一个好方法。因此,我们强烈建议您不要使用此方法。以下是选择模型继承的一些常见方法:

  如果只有少数模型重复了字段,则无需使用模型继承。您只需要将这些相同的字段添加到每个模型中。

  如果您有足够的模型具有重复的字段,则大多数字段是由抽象基类继承的,并且将同一字段提取为抽象基类。

  代理模型很少使用,与其他两个继承存在许多差异。

  请不要使用多桌继承,因为它既消耗资源又消耗复杂。如果可以,请尝试使用OneTooneFields和Forefore。

  在Django项目中,创建时间和修改时间的两个字段最有用。抽象基类继承的示例如下:

  2. Django模型设计

  如何设计良好的Django模型可能是最难,最复杂的话题。在这里,让我们看一些基本技能:

  A。标准化

  我们首先建议了解数据库归一化。如果您不知道这是什么,那么我们强烈建议您先阅读相关书籍,或搜索“关系数据库设计”或“数据库标准化”。在模型之前,应首先确保设计数据库。

  b。缓存

  正确使用缓存来帮助我们提高数据库的性能。详细信息,我们将在未来的文章中进一步介绍。

  C.何时使用空和空白

  在定义模型字段时,我们可以设置null = true和blank = true(默认值为false),知道何时设置null和空白对开发人员也非常重要。在以下表格中,我们如何列出一个,我们如何一个一个列出,我们如何一个一个列出。使用这两个选项:

  D.何时使用binaryfield

  在Django 1.6中,添加了二进制文件中的二进制数据(二进制数据或字节)。对于BinaryField,我们不能使用ORM的过滤器,不包括其他SQL操作。但是在少数情况下,我们将使用BinaryField,例如,MessagePack格式的内容,传感器接受的原始数据和压缩数据。但是应该注意的是,二进制数据通常非常大,因此可能会慢慢降低数据库。如果发生这种现象,我们可以存储文件中的二进制数据存储,然后使用文件字段存储文件的路径信息。

  另外,请勿直接从BinaryField读取文件,并将其呈现给用户。因为,1。从数据库中读取和写作总是比文件系统慢;2.数据库备份将变得巨大,花更多的时间;它需要更多的时间; 3。获取文件的过程增加了此链接,从Django到数据库。

  3.不要替换默认模型管理器

  实际上,从ORM获得模型是通过Django的模型管理器完成的。Django为每个模型提供默认模型管理器。我们不建议替换它,因为::::

  当使用模型继承时,模型将继承抽象基类模型的模型管理器,而无需继承非提交基类的经理。

  Model的第一个模型管理器通常用作默认管理器。替换后,可能会出现不可预测的问题。

  4.数据库事务(事务)

  在Django 1.6中,每个数据库查询的ORM默认值是使用M.Create()或M.Update()时,每次timeIT都会简化对第一学者对ORM的理解的理解。但是缺点是,当一种视图包含两个数据库修改时,它可能会成功,但另一个视图可能会导致数据库不完整并带来很多危险。

  解决此问题的方法是使用数据库事务。在即将到来的一系列数据库操作中,它包含在事务中。当其中一个失败时,其他操作将自动返回。Django 1.6为我们带来了一套新的简单简单简单的简单性。强大的交易机制使我们能够轻松地使用数据库事务。

  A。将整个HTTP请求包装在交易中

  Django为我们提供了一种简单的方法,可以将所有数据库操作包裹在交易中的HTTP请求中:

  您只需要在数据库设置中添加'atomic_requests':TRUE选项,并且可以将整个HTTP请求包装在交易中。这样做的好处显然是安全的,但是劣势可能会下降。因此,我们必须采用更有针对性的交易。其次,应该注意的是,数据库的状态仅是数据库的状态,而不是其他数据库项目,例如发送电子邮件。因此,当涉及这些非数据库项目时,我们应该使用ittransaction.con_atomic_request()docoration()装饰(十年):

  b。更清楚的交易控制

  更清楚的是,交易控制意味着改善真实问题Web应用程序的性能,但这也意味着更多的开发时间。在大多数网站下,由于流量有限,Atomic_requests的使用就足够了。使用手动交易控制时,请注意:

  不要进行数据修改的操作,应将其排除在交易之外

  数据修改的操作应在交易中

  在特殊情况下,您可以违反上述两个

  应当指出的是,当视图返回django.http.streaminghttpresponse时,您应该将atomic_requests设置为false,或使用trassaction.non_atomic_requests修改视图。流由流触发的额外SQL查询将自动成为Django的Django Defaut Autocommit模式。

  项目包含一些全局配置。这些配置构成了一个全球操作平台。每个应用程序都在此全局操作平台上运行。该应用代表一个相对独立的功能模块,因此该程序的逻辑在应用程序中。

  Django可以在一个项目中拥有多个应用程序。例如,大型门户可以包括论坛,新闻和其他内容。每个模块称为一个应用程序,也可以理解为一个独立的小型项目。该网站最终呈现给用户

  该测试是Python 2.7

  其次,相应的应用模块分别建立:todo,oa,web

  如图所示:

  在上面的配置中,引入Inclubly以包装配置

  同时,介绍了索引函数,并建立了TODO,OA和Web中索引中的视图文件

  同时,指定了一个打开的默认主页,即

  此时,运行程序,该页面显示在图中

  如果此时输入的路径是Localhost:8000/web/inex,

  Localhost:8000/OA/INEX,

  Localhost:8000/TOTO/索引将由不同的应用显示,

  创建项目:

  django-admin startproject mysite

  2

  新应用(名称自我确定):

  CD网站

  python manage.py开始学习

  3

  将我们新定义的应用程序添加到设置中的install_apps.py ::

  修改vim mysite/settings.py

  instasted_apps =((

  'django.contrib.admin',#django默认值。

  'django.contrib.auth',#Defeault身份验证系统。

  'django.contrib.contenttypes',#Defeault Content类型框架。

  'django.contrib.sessions',#default会话框架。

  'django.contrib.messages',#default Messages Framework

  'django.contrib.staticfiles',#Defeault静态文件管理框架。

  '学习',

  治愈

  备注:这个步骤是什么?如果未在install_apps中添加新应用程序,Django将无法自动找到模板文件(app-name/pemplates/file)和静态文件(中国的app-name/static/file)。

  4

  定义查看功能:

  vim学习/views.py

  注意:我们定义一个index()函数。第一个参数必须是请求,该参数与网页发送的请求有关。它可以包含获取或发布的内容。该函数将行返回到网页。

  5

  定义与图表函数相关的URL(URL):

  vim mysite/urls.py

  6

  运行并验证:

  python manage.py runserver 0.0.0.0:8000

  注意:如果您不添加0.0.0.0:8000,则默认值为127.0.0.1:8000,并且只能访问该计算机。

  访问验证:

  7

  此时,您已经启动了Django开发服务器,这是由Python.django编写的纯轻质Web服务器包含此服务器,以便您可以快速开发。您不必在产品使用(例如Apache)之前在生产环境中配置服务器。

  注意:**请勿在任何类似的生产环境中使用此服务器。它仅适用于开发环境(Django提供Web框架业务,而不是Web服务器。)

  8

  提示:项目与应用程序(应用程序)

  项目和应用程序之间有什么区别?应用程序是提供功能的Web应用程序 - 例如:博客系统,公共记录数据库或简单的投票系统。该项目是特定网站相关的配置及其它的组合Application.one项目可以包含多个应用程序。一个应用程序可以在多个项目中使用。

  结论:以上是首席CTO的全部内容,请注意Django知道多少应用程序。感谢您阅读本网站的内容。我希望这对您有帮助。有关django的更多信息,请了解该项目与该项目有多少相关。