简介:许多朋友问有关Django迁移含义的问题。本文的首席执行官注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!
(1)烧瓶
烧瓶确实是“轻”。这确实是微框架。从Django到烧瓶的开发人员将确定
烧瓶是免费的,灵活的,并且具有强大的可扩展性。可以广泛使用第三方库的选择。您可以在开发过程中结合自己喜欢的车轮。它也可以与最受欢迎的Python库结合使用。
简介很简单,即使没有许多网络开发经验,您也可以快速建立网站
非常适合小型网站
非常适合开发Web服务API
没有开发大型网站的压力,但是代码架构需要由其本身设计。开发成本取决于开发人员的能力和经验
各个方面的表现等于或优于django
django自己的或第三方赞美功能,烧瓶总是找到第三方图书馆,就像第三方图书馆一样
烧瓶是灵活开发的,python基本上像烧瓶一样,但可能与django混合
烧瓶和关系数据库的组合并不比Django弱,并且其与NOSQL数据库的合作远胜于Django
烧瓶比django更具Pythonic,并且与Python的哲学更一致
(2)Django
Django太重了。除了网络框架,使用ORM和模板引擎,灵活性和自由度不够高
Django可以开发小型应用程序,但总会有一种“用牛刀杀死鸡”的感觉
Django自己的ORM非常好,全面评估略高于Sqlalchemy
Django自己的模板引擎简单易用,但其强大而全面的评估略低于Jinja
Django自己的ORM也使Django与关系数据库之间的关系过高。如果您想使用NOSQL数据,例如MongoDB,则需要选择合适的第三方图书馆。
Django目前支持非官方模板引擎(例如Jinja)
Django自己的数据库管理应用程序受到了良好接收
Django非常适合开发企业级别的网站:快速,可靠,稳定
Django成熟,稳定且完美,但与烧瓶相比,Django的整体生态相对封闭
Django是Python Web框架的先驱。有很多用户。第三方库是最丰富的。最好的Python图书馆。
Django也更容易开始。开发文件是详细的,完美的,丰富的相关信息
Django创建了一个中间手表来代表Manytomanyfield关系。默认情况下,中间表的名称由两个关系表名称组合在一起。
由于某些数据库仅限于表名的长度,因此中间表的名称将自动限制在64个字符中,并包含一个不可复制的哈希字符串。
这意味着您可能会看到诸如book_authors_9cdf4之类的名称。您可以使用db_table选项手动指定中间表名称。
据说外国人是一对一的,也是汽车的一个例子:
有两个配件表,一个是车轮计,另一个是发动机桌。桌子都有一个汽车场,指示与附件相对应的汽车。
对于车轮,多种条件与一辆汽车相对应是正常的,因此应由外国钥匙代表汽车场。
对于发动机,发动机只能对应于一辆汽车,因此必须使用OneToOneField。
OneToOneField(Somemodel)可以理解为外国基金(Somemol,unique = true)。
两者的反向查询是不同的:
外汇反向查询返回列表(汽车有多个轮子)。
OneToOneField反向查询返回一个模型示例(因为一个-on -One关系)。
另一个补充说明:
请小心意识到,Onefield(Somemodel)和Foreignkey(SomeModel,somut = true)之间的一些差异。如Django的“权威指南”中所述
Onetoonefield
一对一的关系。从概念上讲,这是simila toa toa exturekey具有unique = true,但“重新质量的反面将直接撤回单个对象。
在与OneToNefield“反向”关系的合同中,外国人“反向”反向返回Aquisset。
例子
对于Exmple,如果我们有以下两个模型(下面的完整模型代码):
汽车模型使用OneToOneField(发动机)
CAR2模型使用extrickey(Engine2,unique = true)
从incormant.py hand.py shell执行后续行动:
OneToOneField示例
从Testapp.Models进口汽车,发动机
c = car.objects.get(name ='audi')
E = Engine.Objects.get(name ='柴油')
e.car
汽车:奥迪
具有唯一=真实示例的外国钥匙
来自Testapp.Models Import Car2,Engine2
c2 = car2.Objects.get(name ='Mazda')
e2 = Engine2.Objects.get(name ='Wankel')
e2.car2_set.all()
[CAR2:马自达]
型号代码
来自django.db导入模型
类引擎(型号。模型):
name = models.charfield(max_length = 25)
def __unicode __(self):
返回self.name
班级汽车(Models.Model):
name = models.charfield(max_length = 25)
引擎=型号。
def __unicode __(self):
返回self.name
Class Engine2(Models.Model):
name = models.charfield(max_length = 25)
def __unicode __(self):
返回self.name
CAR2类(Models.Model):
name = models.charfield(max_length = 25)
Engine = Models.Foreignkey(Engine2,unique = true)
def __unicode __(self):
返回self.name
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.安装后查看应用程序信息,例如安装路径
希望采用 -
如果MySQL数据表是错误的,则可以将其返回到2.0版Django版本
Django 2.1功能
Python版本支持
Python版本需要3.5+,不再支持3.4。
模型权限:添加的视图(视图)权限
长期以来,Django模型只有三个默认权限:增加(添加),删除(删除)和编辑器(更改),并且没有单独的查看权限。新的查看权限允许设置模型可读取。
正向兼容性:如果用户获得修改(更改)权限,则自然会在没有任何其他设置的情况下获得查看权限。
登录框架
删除了contry.auth.views模块下的所有函数视图(FBV),并且可以使用相应的类视图(CBV)
安全
httpresponse.set_cookie()支持设置samesite属性
不再支持数据
不再支持MySQL 5.5及以下,PostgreSQL 9.3及以下
其他更新
默认的jQuery版本从2.3.3更新为3.3.1
根据基于内存的缓存使用LRU选择算法
ImageField渲染控制新访问=“ image/*”属性
模型类支持init_subclass重写
booleanfield允许设置null = true,将来可以删除nullbooleanfield类
Django表单易于使用且易于扩展。因此,Django管理员和CBV基本上基于形式。实际上,由于Django形式的强大验证功能,大多数Django API框架都将表格作为其验证的一部分。尽管Django形成需要一些时间学习,但如果形式为mod。
结论:以上是首席CTO的所有内容都注明了Django在Django中的迁移。感谢您阅读本网站的内容。我希望这对您有帮助。不要忘记在此网站上找到它。