简介:许多朋友问有关Django项目有多长时间的问题。本文的首席CTO注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!
使用Django开发网络后端并不比Springboot更麻烦。
春季的优点是,当您需要消息队列或服务注册,配置中心等时,配置更加方便。如果您不考虑微服务,则春季靴比Java世界中的其他靴子更方便。
Python世界希望整合上述功能并达到一定的生产水平比春季更麻烦。
在性能方面,在看到一些评估后,Spring为用户提供了许多类型的推断,并且Java世界中的纯粹性能腐烂了。
如果Python不在PYPY的开头,那是JIT之间的性能差距,可能是十次。
最后讨论软件的开发。
Java是消费代码。完成编写相同函数的代码是更多的时间。显然,GO的代码较少。
在我的理解中,Python需要1来完成1.5或以上的Java至2或更多。显然,时间基于此比例。
我没有理由在个人思维范围内选择Java作为项目,因为代码行的数量是时间和时间是金钱。
对于没有写测试的情况下的项目,这罐Java不能被携带。
至于这个大项目,我确实没有任何概念。它计算了上一个项目的有效代码。它不计算第三张库。现在,该公司的两年项目超过20,000行。即使我现在遇到了最大的规模。
其余的企业家项目已经完成了三个月,即将接近30,000行。
最后,结论,项目很小,周期很短,投资很小,或者投资很小。
Django框架简介
Django是由高级别Python编程语言驱动的开源模型。查看,Controller样式的Web应用程序框架,起源于开源社区。使用此架构,程序结构可以轻松,快速地创建高质量,易于维护,易于维护,易于维护,易于维护,易于维护,易于维护,数据库 - 驱动的应用程序。这是OpenStack的地平线组件采用此架构进行设计的主要原因。
此外,在DJ Ango框架中,许多功能强大的第三方插头 - 使Django具有强大的可扩展性。Django项目源自在线新闻网站,并于2005年以开源形式发布。
Django框架的核心组件是:
1.创建模型的对象关系映射。
2.为最终用户设计更好的管理接口。
3. URL设计。
4.设计师友好的模板语言。
5,缓存系统。
Django(发音:[`d])是一个用Python语言(开源Web框架)编写的开源Web开发框架,它鼓励快速开发并遵循MVC Design.django符合BSD版权。它于2005年7月首次发行,并于2008年9月发布了首个正式版本1.0。
Django以比利时爵士音乐家Django Reinhardt的名字命名。他是吉普赛人,主要是玩吉夫拉(Geefra),也打小提琴。
由于近年来Django的快速发展,该应用程序已越来越广泛地使用,并且已被著名的IT开发杂志SD Times选为2013 SD Times 100,在“ API,图书馆和框架”中排名第六,排名第六。。经过。
Django并不困难,很难优化网站上的美化和用户体验。我目前正在研究Django一个月并开发一个视频网站。我制作了演示版。每个功能都可以正常运行,但是需要解决以下问题:
网站美化:CSS,Bootstrap,JS等。不知道如何与Django的表单合并以最大化使用。我当前的感觉是,如果您使用JS,则必须在模板中写下表单。
功能扩展:尽管Django是一个强大的框架,但仍有许多地方需要自定义。例如,用户登录系统,Django本身相对简单,而第三派对应用程序具有完整的功能,但是它帮助文件通常是两个句子,新手的门槛太高。
老实说,直到到目前为止,我都不欣赏django。这不是我的认知中的微妙设计。这只是功能所积累的“成熟解决方案”。但是,一切的兴起都是时代的选择。您不喜欢它,但需要它。希望有一天,Python可以拥有越来越丰富的成熟解决方案,并且不再因性能和维护而受到批评。(Fit End)
将其本质带到滴度上,Django的优势很方便。我们的源代码阅读的目的是探索其便利性的本质。阅读源代码的计划对每个地方都不好,而是解释功能的功能。
django-admin startproject helloworld可以生成django项目。命令行是EXE格式。
manage.py将参数交给了命令行。
execute_from_command_line()通过命令行参数创建管理类。然后运行他的execute()。
如果设置了重新加载,请在启动之前检查_errors。
check_errs()是一个关闭,因此在上一篇文章的末尾是(django.setup)()。
查看最后一个句子设置.installed_apps.grab从设置
请注意,此设置不是我们项目中的设置。
这是设置类的懒负载包装包装,直到__getAttr __。然后从设置类的实例中获取值,然后说将其分配给您自己的__ -dict__(我会直接找到它下次我自己,因为__getAttr __优先级)
为了促进调试,我们直接编写一个run.py。
在项目下创建一个run.py,以模拟运行服务器命令
调试抓取设置_MODULE
回到setup()中的最后一句话
开始观看apps.populate()
首先查看本段
这些应用最终被封装在appconfig中。
随后,调用了每个AppConfig的import_models()和ready()方法。
应用程序的加载部分通常是这样的
为了促进调试,我们重写了最后一句话
RES的类型是命令django.contrib.staticfiles.management.commands.runserver.com和object at 0x00000101ED5163A0
重点是第二个句子,让我们跳到run_from_argv()方法,这是几个处理参数。
用Pycharm指向手柄将进入基类,该基类无法获得正确的方向。实际上,子类已重写此方法。
这里有两种情况。如果加载重新加载,它将直接执行inner_run(),并且项目首先从其他逻辑开始。
当Django项目启动时,它实际上将启动两次。如果我们在项目入口(manage.py)中设置一个贴心,您会发现它将打印两次。
在第一个启动开始时,django_autoreload_env却没有,无法输入启动逻辑。将输入crandt_with_reloader()。
在这里,您将将django_autoreload_env放置为true,然后重新启动。
第二次,您可以输入启动逻辑。
在此创建DJANGO主线程以传递Inner_Run()。
随后,此线程创建了一个旋转式,通过reloader.run(django_main_thread)询问监护过程。
让我们看一下django innion_run()的主线程。
当我们看到WSGI时,Django的启动逻辑已经结束。下一个作业已移交给WSGI服务器
这相当于我们之前在Fastapi中所说的话,然后将Fastapi的应用程序交给ASGI服务器(Django也提出了ASGI,这两个基本上是同源的)
那么WSGI来自哪里?让我们回头回去
此设置是一个对象,它已从以前的操作中从settings.py配置文件中获取了自己的属性。因此,我们只需要转到settings.py配置文件即可找到。
让我们找到此get_wsgi_application()。
它将再次调用setup(),返回WSGIHANDLER类的实例很重要。
这是WSGIAPP本身。
load_middleware()是WSGIAPP构建中间件堆栈的唯一方法。
如果您之前阅读了FastAPI源代码,则应该对中间件堆栈不陌生。
应用程序入口→中间件堆栈→路由→路由节点→端点
因此,WSGIAPP已完成此操作,并将服务器传递到应用程序入口的请求中,并且可以通过中间件与该路由分配。
很快,很简单,当然,每个人都简单而不同。如果您想制作一个丰富而美丽的页面,那么工作量有些工作。如果您编写更多代码,则可以在几个小时内完成。也许需要一周或更长时间,我可以代表技术问题来完成
结论:以上是首席CTO的全部内容,内容涉及每个人的Django项目。感谢您花时间阅读本网站上的ContentFind。
