简介:许多朋友问有关如何理解Django项目的问题。本文的首席CTO注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!
感觉到它将被没有卡片的群众击败,所以让我们开始。
打开CMD黑色窗口,我们进入
workon django_env
让我们看一下如何在黑色窗口中的每个URL之间穿梭。您首先查看您现在的位置。一般来说,新开放的CMD在
c:/user/your_name
在这个位置,我们首先转到D驱动器,根目录是从C到D,我们只需要输入
D:
您可以到达D驱动器。如果您的django_env被激活,他将自动跳到
d:/py_env/django_env
当然,在此目录中,我们可以在这里构建该项目,但是我们也可以在其他地方构建它。请输入(请注意,CD和两个点之间有一个空间)
CD ..
CD意味着要去。两个小点是指父亲,这意味着当前目录的父亲目录。
所以我们来了
d:/py_env
在目录中,再次输入
CD ..
所以我们到达
d://
这是D驱动器的根目录的重新输入CD。不再效果。如果您逐步遵循我的教程,那么您已经在此根目录上构建了一个名为Django_project的空文件夹。如果您还没有建造,请输入
mkdir django_project
创建此文件夹。当然,您还可以在图形接口中打开我的计算机,然后正确地单击新文件夹以达到位置。为了强制网格并更熟悉CMD窗口,我建议您仍然使用命令行。
我们的CMD路径(准确是工作路径)现在在D驱动器的根目录上
所以,请输入
CD django_project
指示转到django_project。当然,目前您必须确定Django_project是D驱动器根目录下的子目录。
如果我们还在
D:py_env/django_env
然后输入
CD django_project无效。您必须刚刚逐步到达D驱动器,然后输入django_project.or,您可以直接输入绝对路径
CD d:/django_project
使用上述命令,只要您在D驱动器上,无论您是哪个目录,都可以一步就位。
当我们到达现场时,我们将很快建立我们的项目。
激动人心的时刻在这里,请输入CMD
django-admin startproject mysite
目前,我们创建了一个项目,该项目的名称是MySite等,等等。要说良好的云磁盘不是Mao的MyCloud吗?有必要提及Django的微妙之处。一个新项目等同于计算机上的一块土地(d:/django_project/mysite目录是我们网络服务的站点),Andi尚未开始展览馆。您为什么要直接建造一个新的展览馆而不是土地,因为当我们循环时,我们可以在地面上建立许多展览馆。在Django,云磁盘不足以调用一个。该项目只能称为应用程序(一个展览馆)。只有将许多展览馆放在一起,才可以称为该项目,即一个项目可以包含许多应用程序(应用程序)。对于extplecloud磁盘服务,我们还可以提供个人博客服务。我们还可以为植物开设论坛。无论如何,将来要提供家庭水桶服务。因此,云磁盘只能被视为一个应用程序。当然,目前我们只在地面上建立一个展览馆。
或在CMD黑色窗口中,请输入
dir
使用此指令在当前目录中列出子目录和存储文件,
我们可以看到,生成一个称为MySite的子目录。实际上,山地上有两个目录,一个目录是一个点,这意味着您,即django_project本身,另一个目录是两个点,表明父亲,这意味着父亲。root目录。因此,我们看到的是Django_project目录的三代人。
这基本上是均匀的,作为图形界面。下图的左上角的位置代表父目录。至于目录本身,无需故意表达它。
您使用鼠标单击文件夹,实际上,内部系统是为您运行
CD您单击了文件夹
如果您点击返回,请帮助您运行
CD ..
回到主题,我们看到了一个MySite子目录,所以进去看看,请输入
CD Mysite
然后输入
dir
检查情况
我发现还有另一个Mysite目录,Pit父亲,俄罗斯的孩子是!这是!
在这一点上,我知道Django是外国人的工具。sub -directory称为与父目录相同的名称(无论如何,第一个级别目录的名称是mysite ii.once,我们不能随便更改它。将来,我们将内部称为“ mysite”。mysite,外部的外部称为区别)。细看。旁边还有一个管理。
其中有4个PY文件。我看到了,其中之一是URLS.PY,URL的重要性,您需要专门管理文件。如果您对文章的读物有认真的阅读,则在urls.py中,settings.py也很重要。它用于管理MySite项目。因此,我认为最后一个mysite文件夹应该称为mysite_manage,因为它的内部是什么,就像在管理中一样。
为了使每个人都知道对项目结构有更清晰的了解,我在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主线程以传递innit_run()。
随后,此线程创建了一个旋转式,通过reloader.run(django_main_thread)询问监护过程。
让我们看一下django innion_run()的主线程。
当我们看到WSGI时,Django的启动逻辑已经结束。下一个作业已移交给WSGI服务器
这相当于我们之前在Fastapi中所说的话,然后将Fastapi的应用程序交给ASGI服务器(ASGI也是Django提出的,这两个基本上是同源的)
那么WSGI来自哪里?让我们回头回去
此设置是一个对象,它已从以前的操作中从settings.py配置文件中获取了自己的属性。因此,我们只需要转到settings.py配置文件即可找到。
让我们找到此get_wsgi_application()。
它将再次调用setup(),返回WSGIHANDLER类的实例很重要。
这是WSGIAPP本身。
load_middleware()是WSGIAPP构建中间件堆栈的唯一方法。
如果您之前阅读了FastAPI源代码,则应该对中间件堆栈不陌生。
应用程序入口→中间件堆栈→路由→路由节点→端点
因此,WSGIAPP已完成此操作,并将服务器传递到应用程序入口的请求中,并且可以通过中间件与该路由分配。
创建项目:
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项目可以包含多个应用程序。一个应用程序可以在多个项目中使用。
环境:
Python3.6
Centos 7
django1.11
用Django编写一个小网站,只能在您自己的位置运行!该怎么办?我听说它可以在云服务器上部署,以便其他人可以访问它!
它从哪里开始?从django!旧规则开始,请按照以下步骤操作:
请勿在此处谈论Django项目的实施。假设您已经写了一个Django项目,并且可以以127.0.0.0.1:8000局部奔跑,请给您参考,该项目可能会像这样增长:
也就是说,项目目录中的settings.py文件主要强调几个地方:
①关闭调试模式:
②修改允许的host:
③配置静态文件存储路径:
修改配置后,执行:
关于这一点,无话可说。
最好在安装UWSGI和验证方法后进行验证:
创建一个test.py文件:
启动UWSGI服务器:
如果您可以正常启动而无需报告,那应该没有问题。如果您不用担心,则可以在终端进行验证:
以下配置在uwsgi.ini中执行:
找到NGINX配置文件夹,CentOS7的NGINX配置文件在/etc/nginx下。此路径下有一个nginx.conf总配置文件,两个文件夹https://www.shouxicto.com/article/conf.d,https://wwwww.shouxicto.com/article/article/default.d,我们复制复制nginx.conf到conf.d文件夹,并将其命名为nginx.conf(或project name.conf),如下所示(根据中文注释相应的配置):
输入uwsgi.ini文件夹以执行:
在终端执行:
参考资料:
刘江的博客
博客花园
问答;
匿名博客
Django教程
Django文档
empty_xl博客
结论:以上是如何了解如何理解Django项目的答案。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?