【51CTO.com快译】Django是目前流行的软件开发类Web框架之一。而作为一个Python框架,Django可被用于开发服务器端的Web应用。由于能够支持前端开发,Django通常被作为后端,与React等前端框架协同使用。其主要竞争对手是Express等后端框架。与其他框架类似,Django能够通过提供包、模块和库,来简化Web的开发。其免费开源的框架具有快速、安全和可扩展性等特点。下面,我将向您介绍各种着手使用Django所需的基础知识。

Django能做什么?

总的说来,Django能够允许开发人员创建出不同规模的网站和Web应用。2005年,由于需要在工作环境中发布动态新闻,两名开发人员开发和构建出了这个高效且可扩展的Web框架。经过近20年的发展,许多世界顶级公司(包括Instagram、Dropbox、Udemy、Spotify、National Geographic、以及Pinterest等)都已将Django运用到了自己的开发项目中。

创建一个新的Django项目

Django提供了三种安装可选项,您可以在其官网上查找到相关介绍。而在成功安装了Django后,您需要通过在终端中输入如下命令,来生成一个新的Django项目:

django-admin startproject mysite

也就是说,该命令会在当前的目录中,创建一个新的Django项目。当然,您也可以使用其他名称去代替mysite,这里只是一个示例。

新生成的Django项目将具有如下文件结构:

mysite/     mysite/         _init_.py         asgi.py         settings.py         urls.py         wsgi.py     db.sqlite3     manage.py

主项目文件夹内包含了一个同名的内部文件夹 (mysite)、一个SQLite文件和一个Python文件。在此,Django会生成一个空的SQLite文件,以用作其默认的数据库。根据实际情况,您也可以让它使用不同的SQL或NoSQL数据库。

名为manage.py的Python文件是Django的一个命令行实用程序,可方便用户执行各项管理任务。为了执行Django项目,您需要先导航至项目所在的目录,然后在终端里输入如下命令:

python manage.py runserver

通过执行上述命令,您的终端将产生如下输出(或类似的输出):

Performing system checks... System check identified no issues (0 silenced). You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them.      November 06, 2021 - 11:20:27 Djangoversion 3.2.9, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.

您暂可忽略上述“未应用迁移(unapplied migration)”的警告。一旦您设置好了数据库,该警告就会自动消失。在此,您需要注意的是以“启动开发服务器(Starting development server)”开头的一行。它为您提供了服务器的URL(在本例中为http://127.0.0.1:8000/)。

为了确认Django项目是否正常运行,您可以在浏览器中输入并打开该URL。如果一切顺利的话,您将会看到如下内容: 

探究Django的Python包

Python包位于Django项目的内部文件夹(上例为mysite目录)中,其中包含了settings.py、asgi.py、_init_.py、以及urls.py等文件。

在项目的首次执行时,您的终端会根据设置文件的不同,输出类似:“Django的版本为3.2.9,使用的是'mysite.settings'的设置(Django version 3.2.9, using settings 'mysite.settings')”。这意味着,settings.py文件包含了Django项目的所有核心配置。

在Django项目中创建新的应用

作为基础框架,Django项目包含了用于创建完整网站或应用的所有配置和代码。您可以通过在Django项目中创建一个应用,来开启程序的开发之旅。

由于Django应用往往被专门用于网站特定部分(或功能)的小型组件开发,因此如果您想使用Django开发大型电商网站的话,您需要在同一个项目中拥有多个不同的应用。例如,您可以创建一个应用来管理客户,另一个应用去管理待售商品,第三个应用去管理销售。

可见,Django在单个项目中创建多个应用的能力,对于产品的可扩展性是至关重要的。这也使得它成为了企业级开发的理想选择。当然,许多Django项目只会包含一个小规模的应用程序。

若想在Django中创建新的应用,您需要另开一个新的终端,让第一个终端从“python manage.py runserver”命令开始,继续运行您的Django服务器;而在第二个终端中,请导航至项目目录,并输入如下命令:

python manage.py startapp sellers

其中“sellers”是您要创建的应用名称。通过执行上述命令,您的Django项目中将会创建一个新的目录。至此,整个文件系统的结构如下表所示:

mysite/     mysite/         _pycache_         _init_.py        asgi.py        settings.py        urls.py        wsgi.py     sellers/        migration        _init_.py        admin.py        apps.py        models.py        test.py        views.py     db.sqlite3     manage.py

可见,Django项目有了一个新的应用程序。目前,唯一剩下的问题是,网站既不知道该应用的存在,又不知道如何去访问它。因此,我们需要通过如下方法将两者联系起来。

将Django应用连接到Django项目上

urls.py文件可以将Django项目连接到,由开发人员创建的不同应用中。新的Django项目会在Python包中生成如下urls.py文件:

from django.contrib import admin from django.urls import path urlpatterns = [    path('admin/', admin.site.urls), ]

上面的文件包含了一个URL:admin/。为了让sellers应用连接上电商站点,您需要在该文件中包含sellers应用的URL。为此,您需要事先开发好sellers应用,并通过在sellers views.py文件中创建一个简单的视图,来实现。

sellers view.py文件 

from django.shortcuts import render from django.http import HttpResponse def index(request):    return HttpResponse("Hello sellers")

上面的文件中包含了一个简单的函数,可用于呈现“Hello sellers”。因此,若要将sellers应用连接到电商网站,您可以在sellers应用中创建一个新的urls.py文件。

sellers urls.py 文件 

from django.urls import path from . import views urlpatterns = [    path('', views.index, name='index'), ]

由上述文件创建的URL,可用于导入与使用views.py文件,进而允许开发人员从Django网站处访问views.py文件。

为网站更新的urls.py文件 

from django.contrib import admin from django.urls import include, path urlpatterns = [    path('sellers/', include('sellers.urls')),    path('admin/', admin.site.urls), ]

如您所见,该urls.py文件有所不同。它通过导入include()函数,来访问sellers urls.py文件。至此,您可以通过在浏览器中输入并访问如下URL,来查看自己的sellers应用程序了。

http://127.0.0.1:8000/sellers/

其对应的输出界面为:

小结

总的说来,上面的各个演示步骤向您展示了:

  • 如何创建一个Django项目

  • 如何创建一个Django应用

  • 如何将项目连接到不同的应用上

相信您已经对Django及其用途有一个清晰的了解。当然,这还只是开始。如果您想全面了解Django和Python编程语言的相关知识,请通过社区学习相关知识,以及动手编写,来积累实战经验。

原文标题:A Beginner’s Guide to Getting Started With Django,作者:KADEISHA KEAN

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】