当前位置:首页 > 企业官网建设

如何搭建 超市购物车 网站

2020-02-11

Django是一个非常受欢迎的全功能服务器端Python Web框架,可以快速开发安全和可维护的超市购物车网站。由经验丰富的开发人员构建。Django负责处理Web开发大部分繁琐的工作,因此您可以专注于编写应用程序而无需重新编写框架。它是免费和开源的,拥有蓬勃发展的活跃社区,优秀的文档,以及许多免费和付费支持的选项。

本篇教程将指导使用Django构建一个简单的超市购物车网站框架。您将会了解如何在服务器上搭建Python3及Django框架,并创建您的第一个项目。您需要准备一个云服务器CVM。还没有云服务器的同学可以到华为云点击产品中的云服务器,进行购买。

开发环境是在本地计算机上安装Django,您可以在将Django应用程序部署到生产环境之前用它们进行开发和测试。Django本身提供的主要工具是一组用于创建和使用Django项目的Python脚本,以及一个可用于测试本地(即在您的计算机上,而不是在外部Web服务器上)的简单开发 Web服务器。

创建网站

我们将介绍如何创建网站的基本框架,然后您可以对其进行设置,路径选择,模型搭建,视图和模板填充。

创建项目

首先打开命令提示符/终端,确保您在虚拟环境中,导航 到您要存储Django应用程序的位置,并为您的新网站创建一个文件夹(举例:django_projects)。然后使用cd命令进入该文件夹:

mkdir django_projects
cd django_projects

使用django-admin startproject 命令创建新项目locallibrary(您也可以使用其他命名),然后导航到该文件夹。

django-admin startproject locallibrary
cd locallibrary

django-admin工具创建文件夹/文件结构,如下所示:

locallibrary/
manage.py
locallibrary/
__init__.py
urls.py
settings.py
wsgi.py

我们当前的工作目录应如下所示:

../django_projects/locallibrary/

locallibrary项目的子文件夹是网站的入口点:

  • init.py是一个空文件,指示Python将此目录视为Python包。

  • settings.py包含所有的网站设置。这是我们注册我们创建的任何应用程序,静态文件的位置,数据库配置详细信息等的地方。

  • urls.py定义站点URL到视图的映射。虽然这可能包含所有 url映射代码,但更常见的是将某些映射委托给特定应用程序,稍后您将看到。

  • wsgi.py 用于帮助您的Django应用程序与Web服务器通信。您可以将其视为样板。

manage.py脚本用于创建应用程序,与数据库的工作,并开始开发网络服务器。

创建目录应用程序

接下来,运行以下命令来创建将存在于我们的localibrary项目中的目录应用程序(这必须与项目的manage.py在同一文件夹中运行):

python3 manage.py startapp catalog

该工具将创建一个新文件夹,并使用文件填充该应用程序的不同部分(下面以粗体显示)。大多数的文件会以其目的来进行有效地命名(例如,意见应存放在views.py,模型存在models.py,测试存在tests.py,管理站点配置是  admin.py,申请注册是apps.py),并含有一些用于处理相关对象的最小样板代码。

更新的项目目录现在应如下所示:

locallibrary/
manage.py
locallibrary/
catalog/         admin.py
models.py
apps.py         tests.py
migrations/
views.py
__init__.py

另外我们现在有:

  • 一个迁移的文件夹,用来存放“迁移” -文件允许你修改你的模型自动更新数据库。

  • init.py - 这里创建的空文件,以便Django / Python将该文件夹识别为Python包,  并允许您在项目的其他部分中使用其对象。

注册目录应用程序

既然已经创建了应用程序,我们必须将它注册到项目中,以便在运行任何工具时将其包含在内(例如,将模型添加到数据库中)。通过将应用程序添加到INSTALLED_APPS项目设置中的列表来注册应用程序  。

打开项目设置文件django_projects / locallibrary / locallibrary / settings.py并找到INSTALLED_APPS 列表的定义。然后在列表末尾添加一个新行,如下面的注释所示。

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',     'django.contrib.messages',
'catalog.apps.CatalogConfig', //添加此行]
'django.contrib.staticfiles',

新行指定在 创建应用程序时CatalogConfig/locallibrary/catalog/apps.py中为您生成的应用程序配置对象()。

指定数据库

这也是您通常指定要用于项目的数据库的点 - 在可能的情况下使用相同的数据库进行开发和生产是有意义的,以避免一些细微的差别。您可以在(Django文档)中找到有关不同选项的信息。

我们将在这个例子中使用SQLite数据库,因为我们不希望在演示数据库上需要大量的并发访问,而且因为它不需要额外的设置!您可以在settings.py中查看此数据库的配置方式(下面还包含更多信息):

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}}

因为我们使用的是SQLite,所以我们不需要在此处进行任何进一步的设置。

其他项目设置

settings.py文件也用于配置其他一些设置,但在这一点上,你可能只是想改变TIME_ZONE -这应该是与标准时区信息数据库时区列表相等的字符串(在TZ列在表中包含您想要的值)。将您的TIME_ZONE值更改为适合您所在时区的其中一个字符串,例如:

TIME_ZONE = 'Europe/London'

您应该注意的其他两个设置为:

  • SECRET_KEY。这是一个密钥,用作Django网站安全策略的一部分。如果您不在开发环境中保护此代码,则需要在将其放入生产环境时进行修改。

  • DEBUG。能够让调试日志显示错误,而不是HTTP状态代码响应。在生产环境下应该设置为False,因为调试信息对攻击者很有用,但是现在我们可以将其设置为True

连接URL映射器

该网站使用项目文件夹中的URL映射文件(urls.py)创建。虽然您可以使用此文件来管理所有URL映射,但更常见的是将映射推迟到关联的应用程序上 。

打开locallibrary / locallibrary / urls.py 并记下说明文本,该文本解释了使用URL映射器的一些方法。

"""locallibrary URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.0/topics/http/urls/Examples:Function views    1. Add an import:  from my_app import views    2. Add a URL to urlpatterns:  path('', views.home, name='home')Class-based views    1. Add an import:  from other_app.views import Home    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')Including another URLconf    1. Import the include() function: from django.urls import include, path    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))"""from django.contrib import adminfrom django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),]

URL映射通过urlpatterns变量进行管理,该变量是Python 的函数列表path()。每个path() 函数或将URL模式与特定视图相关联,该模式将在模式匹配时显示,或者与另一个URL模式测试代码列表相关联。该urlpatterns 列表最初定义了一个函数,该函数将所有带有admin /admin.site.urls的URL映射到模块,该模块包含Administration应用程序自己的URL映射定义。

将下面的行添加到文件的底部,以便将新的列表项添加到urlpatterns列表中。这个新项目包括将具有path()模式的请求catalog/ 转发到模块catalog.urls(具有相对URL /catalog/urls.py的文件)。

# Use include() to add paths from the catalog application
from django.conf.urls import includefrom django.urls import path
urlpatterns += [
path('catalog/', include('catalog.urls')),]

现在让我们将我们网站的根URL(即127.0.0.1:8000)重定向到URL 127.0.0.1:8000/catalog/; 这是我们将在这个项目中使用的唯一应用程序。为此,我们将使用一个特殊的视图函数(RedirectView),它将第一个参数作为匹配函数中的/catalog/指定的URL模式path()(在本例中为根URL )重定向到()的新URL 。

将以下行再次添加到文件的底部:

#Add URL maps to redirect the base URL to our applicationfrom django.views.generic import RedirectView
urlpatterns += [
path('', RedirectView.as_view(url='/catalog/')),]

将路径函数的第一个参数留空。如果您将第一个参数写为'/',Django会在您启动开发服务器时给出以下警告:

System check identified some issues:WARNINGS:?: (urls.W002) Your URL pattern '/' has a route beginning with a '/'. Remove this slash as it is unnecessary. If this pattern is targeted in an include(), ensure the include() pattern has a trailing '/'.

Django默认不提供CSS,JavaScript和图像等静态文件,但在创建站点时,开发Web服务器可以这样做。作为此URL映射器的最终添加,您可以通过附加以下行在开发期间启用静态文件。

现在将以下最终块添加到文件的底部:

# Use static() to add url mapping to serve static files during development (only)from django.conf import settingsfrom django.conf.urls.static import staticurlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

最后一步,在目录文件夹中创建一个名为urls.py的文件,并添加以下文本以定义导入的  urlpatterns。这是我们在构建应用程序时添加模式的地方。

from django.urls import pathfrom catalog import views
urlpatterns = []

测试网站框架

此时我们有一个完整的框架项目。该我们将对其进行一些测试。

在我们这样做之前,我们应该首先运行数据库迁移。这会更新我们的数据库,包含我们安装的应用程序中的任何模型(并删除一些构建警告)。

运行数据库迁移

Django使用Object-Relational-Mapper(ORM)将Django代码中的模型定义映射到底层数据库使用的数据结构。当我们更改模型定义时,Django会跟踪更改并创建数据库迁移脚本(在/ locallibrary / catalog / migrations /中),以自动迁移数据库中的基础数据结构以匹配模型。

当我们创建网站时,Django会自动添加一些模型供网站的管理部分使用(我们稍后会详细介绍)。运行以下命令为数据库中的这些模型定义表(确保您位于包含manage.py的目录中):

python3 manage.py makemigrations
python3 manage.py migrate

杭州网站建设指令 为项目中安装的一切使用程序创建(但不使用)搬迁(您也能够指定使用程序名称以仅为单个项目运转搬迁)。这使您有机会在使用这些搬迁之前检查这些搬迁的代码 - 当您对Django熟悉后,您能够挑选略微调整它们!

免费获取报价

  • 29923329

  • 杭州市丰庆路498号北软智慧科创大厦203

  • 0571-85815193

  • pady@1t2.cn

网站地图 版权所有 © 2008-2021 杭州派迪科技有限公司  Copyright © 2008-2020  www.hzpady.com  All Rights Reserved    浙ICP备14029905号-1     公安备案:33010802008411    软著登字第3457658号