对于刚接触Django的初学者,按照以下步骤快速搭建Django环境,创建虚拟环境。使用virtualenv创建并启用虚拟机环境。virtualenv请参考https://www.yuque.com/binowen/tn8zvy/insclepipinstallvirtualenvvirtualenv./envsourceenv/bin/activate创建project1。使用pipinstall安装djangopipinstalldjango2。使用django-adminstartproject生成项目根目录的mysite/,只是一个目录,Django不会对它做什么,它的名字可以随意修改注意:startproject不支持直接创建带有破折号的项目名,例如hello-world项目结构asgi.py兼容ASGIweb服务器的入口。wsgi.py是兼容WSGI的Web服务器的入口点。ASGI和WSGI都是Python的web服务网关接口协议,建立在CGI(CommonGatewayInterface)标准之上。urls.pyURL入口与相应views.py中的一个函数(或泛型类)关联,访问URL对应一个函数。views.py处理用户发送的请求,并从urls.py中与之对应。通过在模板中渲染网页,可以将显示的内容,如登录后的用户名、用户请求的数据等输出到网页中。models.py与数据库操作有关。它在存储或读取数据时使用。当然,不需要数据库的时候可以不用。forms.py表单,用户在浏览器上输入数据提交,验证数据,生成输入框。当然,你也可以不使用它。templates文件夹下views.py中的函数渲染templates中的Html模板,获取动态内容的网页。当然可以使用缓存来提高速度。admin.py后台可以用少量的代码拥有强大的后台。settings.pyDjango的设置,配置文件,比如DEBUG开关,静态文件的位置等。创建一个app使用pythonmanage.pystartapp创建一个app。app是Django项目的应用,一个项目可以包含多个app。使用django-adminstartapp命令后,会创建这样一个目录文件,如下:polls/app的Python包可以放在任意路径。修改存储路径,相关配置中的路径也需要修改。admin.py存放的是Django自带的后台管理模型。apps.pyapp配置信息,例如:fromdjango.appsimportAppConfigclassPollsConfig(AppConfig):name='polls'存放路径不同,name的值也不同。migrations/Django数据迁移生成的迁移记录文件。models.py存储应用程序的模型。tests.py单元测试。views.py视图函数(类)。urls.pyapp的路由配置需要手动添加。可以通过include()函数导入到mysite/urls.py中,例如:fromdjango.contribimportadminfromdjango.urlsimportinclude,pathurlpatterns=[path('admin/',admin.site.urls),path('polls/',include('polls.urls')),]polls/urls.py:fromdjango.urlsimportpathfrom。importviewsurlpatterns=[path('',views.index),]访问xxx/polls/会路由到views.indexCreateTemplate创建一个templates文件夹,把所有的网页模板(.html)文件都放在这个文件夹里。创建一个静态文件夹,将所有的静态文件(图片文件、CSS文件、.js等)放在这个文件夹中。创建Model/View/Url修改settings.py,添加相关文件夹,将生成的app名称添加到INSTALLED_APPS序列中。编辑models.py以创建数据库表。编辑views.py,首先导入models.py中创建的数据模型。编辑admin.py,添加models.py中定义的数据模型,使用admin.site.register注册新添加的类,让admin界面可以处理数据库内容。编辑urls.py,首先导入views.py中定义的模块编辑urls.py,创建网站与views.py中定义的模块的对应关系。执行数据库脚本初始化(如果有Model)pythonmanage.pymakemigrationspythonmanage.pymigrate执行pythonmanage.pyrunserver0.0.0.0:8000启动项目工程工程参考由于Django官方没有提供标准的项目结构特点是①app放在单独目录统一管理,②需求和设置根据环境拆分参考:https://docs.djangoproject.com/en/3.1/intro/tutorial01/https://django-edge.readthedocs.io/zh/最新/架构/
