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

如何在django(django in)设置

时间:2023-03-09 10:21:16 网络应用技术

  简介:许多朋友问有关如何在Django的Django设置的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  实施思想:

  1.需要自动执行为django命令的书面django方法

  2.将自己的django命令添加到cron中以使用cron服务实施常规执行

  PART1在Django项目中添加了自定义Django命令

  1.我们建立了自己

  应用程序称为MyApp。首先,在此应用程序目录中,我们需要创建一个新的管理目录。该目录应包装

  包括:__ INIT __。py(内容为空,用于包装)和命令目录,然后包括:__ Init__.py和

  mycommand.py,其中mycommand.py用于自定义命令方法。目录的树结构如下:

  myapp/

  __init__.py

  模型

  管理/

  __init__.py

  命令/

  __init__.py

  mycommand.py

  tests.py

  Views.py

  2.编写命令mycommand.py的内容,简单的示例如下:

  来自django.core.management.base import basecommand,commanderror

  类命令(BaseCommand):

  def hander(self, *args,**选项):

  打印“ Hello World”

  我们将BaseCommand类关联,并使用命令类和处理方法作为框架。如上所述,此命令实施“ Hello World”。

  我们可以通过上述运行自己的django命令来使用python manage.py mycommand。

  想知道更多细节,请参阅此处。

  Part2使用Cron定期执行Django命令

  1.在Ubuntu的Cron打开/关闭/重新启动

  配置文件通常为/etc/init.d/cron

  开始:sudo /etc/init.d/cron开始

  关闭:sudo /etc/init.d/cron停止

  重新启动:sudo /etc/init.d/cron重启

  sudo服务cron重新启动

  重新加载配置:sudo /etc/init.d/cron reload

  您可以使用PS Aux |Grep Cron命令,看看Cron是否已经开始

  2.新的克朗任务

  建议使用crontab -u

  用户名

  -e命令添加自定义任务(编辑了与用户相对应的cron文件/var/spool/cron

  它不能直接创建或修改,并且Crontab文件是通过crontab命令获得的。

  编辑cron服务时,编辑内容具有一些格式和协议,输入:crontab -u root -e

  A.直接执行命令行

  每5秒打印一个字符串“ Hello World”,然后将其保存在file/home/linjiqin/helloworld.txt中。cron格式如下:

  */5 * * * * * Echo“ Hello world” /home/linjiqin/helloworld.txt

  B,外壳文件

  每5秒/home/home/linjiqin/hellowonh文件驱动一次。cron格式如下:

  */5 * * * * * /home/linjiqin/helloworld.sh

  文件/home/linjiqin/hellowon.sh的内容如下:

  #!/bin/sh

  CD/HOME/LINJIQIN/

  回声“ Hello World” Helloworld.txt

  注意:请记住要在编辑器之后重新启动,否则它是无效的。

  sudo服务cron重新启动

  sudo服务克隆状态

  crontab -l #view cron

  crontab -e #modify cron

  cron常用的例子:

  每5秒执行一次: */5 * * * *?

  每1分钟执行一次:0 */1 * * *?

  每天执行一次:0 0 23 * *?

  每天在上午1点执行:0 0 1 * *?

  每月1点1点在1:0 0 1 1 *执行它?

  每个月的最后一天23点执行:0 0 23 l *?

  每周每周上午1点:0 0 1?* 二

  执行26分,29分和33分:0 26,29,33 * * *?

  每天在0、13:00、18:00和21:00:0 0 0 0 0 0,13,18,21 * *?

  1.创建项目

  运行以下命令来创建Django项目。项目名称是MySite:

  $ django- addmin.py startproject mysite

  创建的项目目录如下:

  我的网站

  e- manage.py

  t - 锰矿

  t- __init__.py

  在──设置.py

  s-或urls.py

  。─— wsgi.py

  1个目录,5个文件

  阐明:

  __init__.py:让Python将目录作为开发包所需的文件(即一组模块)。这是一个空文件,通常您不需要修改它。

  Manage.py:命令行工具允许您通过多种方式与Django项目进行交互。类型python manage.py帮助查看它可以做什么。您不需要编辑此文件;在此目录中为方便起见是纯粹的。

  settings.py:Django项目的设置或配置。

  urls.py:项目的URL路由设置。目前,它是空的。

  wsgi.py:wsgi Web应用程序服务器配置文件。有关更多详细信息,请检查如何使用WSGI部署

  接下来,您可以修改settings.py文件,例如:修改Lagansy_code,设置时区time_zone

  Django教程-01安装和使用

  在上面的文章中,引入了安装Django的方法。让我们谈谈在此处连接数据库。

  本文主要介绍坑和解决方案

  正常连接和初始化数据库的命令是

  执行此命令时,出现以下错误

  在调查一部分之后,当我配置数据库时,我设置了一层默认值并将其修改如下。

  然后,当您继续执行迁移时,您将报告以下错误

  该机器的环境是Mac计算机。在官方教程上操作时,发现使用MySQLClient安装的Python软件包将取决于MySQL或MySQL-CLIENT的安装,但是当我安装MySQL和MySQL-CLIENT时,我发现了解决方案。后来发现在settings.py文件中,添加了以下代码,即可以连接pymsql。

  或者可以在settings.py中添加代码__init__.py

  然后执行python manage.py迁移命令,以发现该表是成功创建的。新表不影响原始库的其他表。

  django2.0模型外键,一个-to -One on_delete参数

  在django2.0之后,定义外键和一个 - 到一个关系时,您需要添加on_delete选项。为了避免两个表中数据不一致的问题,将报告错误:

  TypeError:__init __()缺少1所需的位置参数:'on_delete'

  例如:

  user = models.onetoonefield(用户)

  所有者=型号。

  需要更改为:

  user = models.onetoonefield(用户,on_delete = models.cascade) - 旧版本(models.cascade)是默认值

  所有者= models.foreignkey(userProfile,on_delete = models.cascade)-thisyeeels.cascade in Old版本是默认值

  参数描述:

  on_delete有五个可选值:cascade,protect,set_null,set_default,set()

  级联:此值设置是关节删除。

  保护:此值设置将报告完整性错误。

  set_null:此值设置将把外部键设置为null,但前提是允许将其作为null。

  set_default:此值设置将设置外部键的默认值。

  set():此值设置,外部值称为一个函数。

  在正常情况下,使用级联。

  以下是官方文档描述:

  外国基金会接受其他论点,这些论点定义了相对工作方式的默认值。

  foreferkey.on_delete?

  

  user = models.foreignkey(user,models.set_null,空白= true,null = true,)

  自版本1.9:ON_DELETE的弃用将成为Django 2.0中所需的参数。在较旧的版本中,它默认了Tocascade。

  在django.db.models中找到了on_delete的帖子值:

  级联[来源]?

  级联删除。Django模拟SQL约束在删除级联反应上的行为,并删除包含外键的对象。

  保护[来源]?

  通过提高django.db.db.integrityerror的子类的保护来防止删除引用对象。

  set_null [源]?

  设置外国钥匙空;如果null isstrue,这是公开的。

  set_default [源]?

  将外国人设置为我的默认值;必须设置外国键的默认值。

  set()[源]?

  

  set(get_sentinel_user)),),),),)

  do_nothing [来源]?

  不采取行动。如果您的数据库返回执行引用参考完整性,则除非您手动向数据库添加sqlondeconstraint,否则这将导致IntegragrityError

  foreferkey.limit_choices_to?

  可以使用对象。

  对于Exmple:

  Staff_member = models.Foreignkey(用户,on_delete = models.cascade,limit_choices_to = {'is_staff':true},),)

  导致在themodelformto上提交的相应列表list hasthat hastis_staff = true。这可能对Django管理员有帮助。

  例如,与pythondateModule连接以限制按日期prime的选择时,呼叫表单可能会有所帮助。

  defLimit_pub_date_choices():return {'pub_date__lte':dateTime.date.utcnow()} limit_to = limit_date_choices_choices_choices

  

  笔记

  边缘案件多次,因此您的呼叫可能会宣传几次。

  结论:以上是主要首席技术官的全部内容,请注意有关如何在Django中设置的内容。感谢您的时间阅读ContentForgot在此网站上找到它。