问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

{{ title }} - My Django Application

创作时间:
作者:
@小白创作中心

{{ title }} - My Django Application

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/visualstudio/python/learn-django-in-visual-studio-step-04-full-django-project-template?view=vs-2022

本文是微软官方文档中关于在 Visual Studio 中使用 Django Web 项目模板的教程,属于技术开发类内容。文章详细介绍了如何使用 Django Web 项目模板创建完整的 Django Web 应用,包括创建项目、设置虚拟环境、创建超级用户、运行项目、检查项目结构、视图和页面模板以及 URL 路由等步骤。内容专业且深入,适合有一定 Python 和 Django 基础的开发者阅读。

本文是教程系列《在Visual Studio中使用Django网络框架》的第4步。
本教程系列中的前面的步骤为两个应用程序创建 Visual Studio 解决方案和 Django 项目。BasicProject是基于空白 Django Web 项目模板的最小应用,HelloDjangoApp使用 Django 1.9 应用模板为静态文件提供 HTML 模板中的页面视图。
在步骤 4 中,将第三个 Django 应用添加到解决方案中,该应用基于完整的Django Web 项目模板。 此模板可帮助你创建一个完整的 Django 应用,其中包含从基页模板继承的三个页面。 该应用采用 jQuery 和 Bootstrap 等静态 JavaScript 库。 模板的身份验证功能在教程系列的最后一步中介绍。
在本教程的步骤 4 中,你将了解如何:

  • 使用Django Web 项目模板创建更完整的 Django Web 应用
  • 查看模板提供的 Django 项目结构
  • 浏览项目模板创建的视图和页面模板
  • 检查模板提供的 URL 路由

先决条件

  • 在步骤 1 中创建的 Visual Studio 解决方案:创建 Visual Studio 项目和解决方案,该解决方案使用空白 Django Web 项目模板。
  • 有关 Django 模板版本、Visual Studio 项目与 Django 项目以及 Mac 上的 Python 开发的详细信息,请查看本教程系列步骤 1 中的先决条件部分。
  • (可选)查看 Visual Studio 中端到端 Django 工作流的上一步骤中的说明:
  • 步骤 2:使用视图和页面模板创建应用
  • 步骤 3:提供静态文件并使用 HTML 模板

从模板创建项目

按照以下步骤从完整的Django Web 项目模板创建 Django Web 应用:
2.
在 Visual Studio 中,转到解决方案资源管理器,右键单击LearningDjango解决方案,然后选择“添加>新项目”。
注意
本教程系列的步骤 1 创建LearningDjangoVisual Studio 解决方案,以包含本系列中所述的所有 Django 项目。 通过将所有 Django 项目保存在同一解决方案中,可以轻松地在不同文件之间来回切换以进行比较。
如果想要在本教程步骤中为 Django 项目使用单独的 Visual Studio 解决方案,请改为选择文件>新建>项目
4.
在“添加新项目对话框中,搜索”Django“,选择Django Web 项目模板,然后选择”下一步“。
6.
配置新项目:
2.
将项目的名称设置为DjangoWeb
4.
指定 Visual Studio 保存项目的位置。 (默认值是解决方案和现有 Django 项目的当前位置。
8.
选择创建

创建虚拟环境

Visual Studio 启动项目创建后,应会看到消息提示Python 包规范文件“requirements.txt”在项目“DjangoWeb”中检测到。

该消息指示所选模板包含可用于为项目创建虚拟环境的requirements.txt文件。
重要
如果未看到消息提示,则尝试在下一部分中创建 Django 超级用户时可能会遇到错误。
确认 Visual Studio 识别项目的requirements.txt文件。 在解决方案资源管理器中,展开DjangoWeb项目文件夹,然后打开requirements.txt文件。 Visual Studio 应按预期显示消息提示。
按照以下步骤设置虚拟环境:
2.
在提示消息中,选择链接以安装到或创建虚拟环境
4.
在“添加虚拟环境”对话框中,选择“创建”以接受默认值。

创建 Django 超级用户

Visual Studio 创建DjangoWeb项目后,将打开项目readme.html文件。 该文件包含为项目创建Django 超级用户(即管理员)的说明。
按照以下步骤创建 Django 超级用户:
2.
解决方案资源管理器中,右键单击 DjangoWeb项目,选择Python,然后选择Django 创建 Superuser

4.
在提示符下,输入项目的帐户详细信息,包括用户名、密码和电子邮件地址。
无需对现有帐户使用安全凭据。 可以创建新的用户名和密码,以专门用于 Django Web 应用。
6.
记录凭据供以后使用。 需要凭据来使用网页应用的认证功能。

运行 Django Web 项目

现在,你已准备好运行 Django Web 应用程序,并查看模板提供的功能:
2.
解决方案资源管理器中,右键单击 djangoWeb项目,然后选择设置为启动项目
此命令将所选项目设置为 Visual Studio 解决方案的默认启动项目。 启动调试器时,Visual Studio 将运行启动项目的代码。 在解决方案资源管理器中,解决方案的启动项目的名称以粗体显示:

4.
选择调试>启动调试F5),或使用工具栏上的Web 服务器按钮来运行服务器:

浏览 Web 应用页面

模板创建的应用有三个页面:“主页”、“关于”和“联系人”。导航栏上每个页面都有链接。
2.
请尝试使用导航栏上的选项在页面之间切换。
4.
检查正在运行的应用的不同部分,包括页面内容。 请注意 URL 地址路由如何根据当前页更改。
6.
通过选择导航栏上的“登录”选项,对应用进行身份验证。 请输入您在上一部分中提供的超级用户凭据。
8.
Django Web 项目模板创建的应用使用 Bootstrap 进行响应式布局,以适应移动外形规格。 若要查看此响应能力,可将浏览器调整为窄视图,使内容垂直呈现,导航栏变为菜单图标:

你可以让应用继续运行,以便进行下一部分的练习。
如果要保存工作,请停止应用,并按照本教程系列前面的步骤中的说明操作:

  • 步骤 1 (从源代码管理中排除虚拟环境文件)
  • 步骤 2(提交对源代码管理所做的更改)

检查 Web 应用项目结构

Django Web 项目模板在 Visual Studio 中创建具有以下结构的 Web 应用项目:

DjangoWebVisual Studio 项目根目录中的文件:

  • manage.py:Django 管理实用工具。
  • db.sqlite3:默认 SQLite 数据库。
  • requirements.txt:标识项目中依赖于 Django 1.x 的包。
  • readme.html:包含有关 Web 应用的信息,包括要求和关键使用过程。 创建项目后,Visual Studio 会显示此文件。 如前所述,此文件包含为应用创建超级用户(管理员)帐户的说明。
  • DjangoWeb/app 文件夹:
    此文件夹包含所有应用文件,包括视图、模型、测试、窗体。 此文件夹还包含包含文件的子文件夹,包括模板、迁移,以及静态。 通常重命名应用文件夹,以使用更独特的名称(如应用名称本身)。
  • DjangoWeb/DjangoWeb文件夹:
    此文件夹是 Django 项目文件夹。 它包含典型的 Django 项目文件:init.py、settings.py、urls.py和wsgi.py。settings.py文件已使用项目模板为应用和数据库文件配置。urls.py文件也已设置了所有应用页面的路由,包括登录表单

在 Visual Studio 项目之间共享虚拟环境

可以在 Visual Studio 项目之间共享虚拟环境。 但是,请记住,随着时间推移,不同的项目可能会使用不同的包。 共享虚拟环境必须包含使用它的所有项目的所有包。
若要使用现有虚拟环境,请执行以下步骤:
2.
当系统提示在 Visual Studio 中安装依赖项时,请选择我将自行安装依赖项选项。
4.
解决方案资源管理器中,右键单击Python 环境节点,然后选择添加现有虚拟环境
6.
导航到并选择包含虚拟环境的文件夹,然后选择“确定”。

检查视图和页面模板

Django Web Project创建的页面视图的代码位于项目的应用/views.py文件中。 每个视图函数都会调用
django.shortcuts.render
帮助程序函数,其中包含模板和简单字典对象的路径。
about
函数为 Web 应用中的“关于”页面创建视图:


def about(request):
   """Renders the about page."""
   assert isinstance(request, HttpRequest)
   return render(
      request,
      'app/about.html',
      {
         'title':'About',
         'message':'Your application description page.',
         'year':datetime.now().year,
      }
   )

视图的 HTML 页面模板位于项目的应用/模板/应用文件夹中(通常重命名)。 基本模板layout.html是最广泛的。 该文件引用应用视图所需的所有静态文件(JavaScript 和 CSS)。
此模板还定义了两个
block
部分:
content

scripts
。 其他 Web 应用页面将覆盖 layout.html 文件中的
{% block content %}
部分。 在此 layout.html 文件的批注版本中,可以看到

元素中的两个 block 部分: ``` {{ title }} - My Django Application {% load staticfiles %}
{% block content %} {% endblock %}

© {{ year }} - My Django Application

{% block scripts %} {% endblock %}
各个 HTML 页面模板、about.html、contact.html和index.html,每个模板都扩展基模板layout.html。about.html模板文件最简单,显示  
{% extends %}  
标记和  
{% block content %}  
部分:  

{% extends "app/layout.html" %}

{% block content %}

{{ title }}.

{{ message }}

Use this area to provide additional information.

{% endblock %}
index.html和contact.html模板文件使用相同的结构,并在  
content  
块中提供更多说明。  
应用/模板/应用文件夹包含另外两个 HTML 页面模板。login.html文件定义**登录**应用页的页面内容。 使用  
{% include %}  
语句将loginpartial.html文件引入layout.html文件中。 本教程系列最后一步(对用户进行身份验证)更详细地介绍了这两个模板文件。  

#### 缩进模板中的 {% block %} 和 {% endblock %} 标记  

HTML 示例显示 Visual Studio 页面模板中提供的标记。 请注意,  
block  
标记在 markup 中没有缩进。 为了清楚地显示  
block  
标记的位置,Visual Studio 页面模板不会缩进这些标记。  
但是,如果缩进  
block  
标记,Django 页面模板会正常工作。 一些开发人员更喜欢将标签在其相应的父 HTML 元素中对齐。  

### 检查 URL 路由模式  

Django 项目的 URL 文件(DjangoWeb/DjangoWeb/urls.py)由**Django Web 项目**模板创建,包含以下代码:  

"""
Definition of urls for DjangoWeb
"""
from datetime import datetime
from django.urls import path
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from app import forms, views
urlpatterns = [
path('', views.home, name='home'),
path('contact/', views.contact, name='contact'),
path('about/', views.about, name='about'),
path('login/',
LoginView.as_view
(
template_name='app/login.html',
authentication_form=forms.BootstrapAuthenticationForm,
extra_context=
{
'title': 'Log in',
'year' : datetime.now().year,
}
),
name='login'),
path('logout/', LogoutView.as_view(next_page='/'), name='logout'),
path('admin/', admin.site.urls),
]

前三个 URL 模式直接映射到项目应用/views.py文件中定义的  
home  
、  
contact  
和  
about  
视图函数。  
login/  
和  
logout/  
模式对应于应用的身份验证功能。  
特殊的 URL 路由模式,例如  
^login/$  
和  
^logout$  
访问内置的 Django 视图,而不是应用定义的视图。 调用  
url  
方法还包括用于自定义视图的额外数据。 本教程系列中的最后一步(对用户进行身份验证)介绍了如何使用 URL 调用。  

#### 了解 URL 模式的差异  

在本教程系列的第 3 步(HTML 模板继承)[] 中,“关于”页面的路径使用了  
'^about$'  
模式。 此模式不同于本教程步骤中提供的 URL 路由。 根据模板版本,示例代码可能会将“关于”页面 URL 模式显示为  
about/  
或  
^about  
而不是  
^about$  
。  
正则表达式中缺少美元符号  
$  
是许多版本的项目模板的疏忽。 URL 模式非常适用于名为“about”或“About”的页面,但是,如果没有尾随的  
$  
,URL 模式还会匹配诸如“about=django”、“about09876”、“about-face”等 URL。 尾部的  
$  
字符创建了一种 URL 模式,确保只匹配术语“about”。  

### 下一步  

步骤 5:在 Django中对用户进行身份验证  

**本文原文来自微软官方文档**
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号