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

如何在Django定期建造桌子(2023年的最新饰面)

时间:2023-03-06 21:03:17 网络应用技术

  简介:本文的首席执行官Note将介绍有关Django定期在桌子上定期构建的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  提供一个想法。我没有尝试过,我不知道它是否可行。将表的抽象结构定义为模型,但请记住添加

  元类:

  摘要= true

  好吧,您将获得模型的抽象类。当SynCDB时,不会构建抽象类。

  然后,编写一个根据日期动态生成动态类的东西。例如,您的抽象称为myModel。

  def gen_model_by_date(dt = none):

  如果DT没有:

  dt = dateTime.dateTime.today()

  new_model_name ='mymodel_ {d}'。格式(d = dt.strftime('%y%m%d'))

  new_model = type(new_model_name,(mymodel,),{}),{})

  返回new_model

  然后,在此表的所有逻辑中,此方法用于替换原始模型。

  Django代码应由此决定。

  ;

  Django创建一个数据库表方法如下:

  捕捉器:MySite Catcher $ Python Manage.py Makemigrations Books

  “书籍”的迁移:

  0001_Initial.py:

  - 创建模型作者

  - 创建模型书

  - 创建模型出版商

  -DD Field Publicsher预订

  捕捉器:MySite Catcher $ Python Manage.py Sqlmigrate Books 0001

  开始;

  ------

  - 创建模型作者

  ------

  创建表“ books_author”(“ id”整数而不是null主键自动启动,“ first_name” varchar(30),而不是null,last_name” varchar(40)不是nul null,null,“ emil” varchar(254)不(254)不(254)

  ------

  - 创建模型书

  ------

  创建表“ books_book”(“ id” integer而不是null主键自动启动,标题“ varchar(100)不是null,publication_date”日期而不是null);

  

  ------

  - 创建模型出版商

  ------

  (30)不是零,“乡村” varchar(50)不是null,“网站” varchar(200)而不是null);

  ------

  -DD Field Publicsher预订

  ------

  Alter Table“ Books_book”重命名为“ books_book__old”;

  

  插入“ books_book”(“ publication_date”,“ publisher_id”,“ id”,“ title”)选择“ publication_date”,null,“ id”,“ title” books_book_old”;

  drop表“ books_book__old”;

  在“ books_book”(“ publisher_id”)上创建索引“ books_book_book_2604cbea”;

  犯罪;

  捕捉器:Mysite Catcher $

  

  在这样做之前,您需要一个更好的设计框架。如果您想执行自己的应用程序,理论上可以在应用程序中构建表格。最好确保每个应用程序都可以单独使用并且不依赖其他应用程序。由于有两个联系表,因此应独立使用一个称为“常见”的模块,以便每个人都可以打电话。

  在Django中,管理数据库类似于SQLARCHEMY,并通过ORM框架实现。所有数据库的建立均在Model.py中实现。

  首先查看如何创建一个表:

  A。首先定义类,继承模型。模型,然后根据要求定义参数。这些参数的类型和变量将在以后进一步说明

  模型

  来自django.db导入模型

  类UserInfo(models.model):

  用户名= models.charfield(max_length = 32)

  密码= models.charfield(max_length = 64)

  b。注册应用程序

  settings.py

  instasted_apps = [[[

  ‘django.contrib.admin’,

  ‘django.contrib.auth’,

  ‘django.contrib.contenttypes',

  'django.contrib.sessions',

  ‘django.contrib.messages',

  ‘django.contrib.staticfiles’,

  “ app01”,

  这是给予的

  C。execute命令。第一个命令将生成一个初始化文件,第二个命令将生成相应的表

  python manage.py makemigrations

  python manage.py迁移

  这样,PyCharm随附的SQLite数据库中成功生成了App01_userinfo的表。该表将以自我信息为主键,而我们的其他两个字段由我们通过类创建。

  d。如果要使用MySQL,因为Django默认使用MySQLDB模块,因此在版本3.0中不存在此错误,因此它将直接报告错误。我们需要更改为PymySQL的模块。该方法如下:

  将以下代码添加到同名文件夹的文件夹下的__init__文件:

  导入pymysql

  pymysql.install_as_mysqldb()

  2.查询添加,删除,更改单个表的查询

  查询

  获取所有结果,获得的结果是类似QuerySet列表的对象。每个元素本身都是一个对象,包括ID,名称,密码和其他属性。

  obj = model.userinfo.objects.all()

  querySet [UserInfo:UserInfo对象,UserInfo:UserInfo对象,UserInfo:UserInfo对象,UserInfo:UserInfo Object,userInfo:userInfo:userInfo Object]

  它可以通过过滤器过滤,这相当于SQL的语句,因为结果也是querySet,因此您需要使用第一个()来获取第一个值

  obj = model.userinfo.objects.filter(id = nid).first()

  增加

  models.userinfo.objects.create(用户名= u,password = p,user_group_id = 3)

  删除,您可以根据过滤器删除它

  models.userinfo.objects.filter(id = nid).delete()

  有两种常见的修改方法

  第一条方法

  models.userinfo.objects.filter(id = nid).update(用户名= u,password = p)

  第二种方式

  obj = model.userinfo.objects.filter(id = nid)

  obj.username = u

  obj.save()

  结论:以上是首席CTO的所有内容都指出了Django如何定期为所有人建造桌子。感谢您阅读本网站的内容。我希望这对您有帮助。有关django如何定期构建桌子的更多信息,请在此站点上找到它。