如何搭建 超市购物车 网站

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熟悉后,您能够挑选略微调整它们!


返回观点列表
本文标签:

相关专题

  • 品牌官网设计
    品牌官网设计

    杭州派迪科技为高端客户提供品牌官网咨询策划,品牌官网设计,品牌官网建设开发服务,以国际化视野和标准为基础,为各行业领军品牌提供高端企业网站定制、策划、设计、互动与制作

    查看详情
  • 大策略营销门户网站
    大策略营销门户网站

    杭州派迪科技有自己的营销型网站CMS系统,适合白帽SEO网站。特别对大策略的营销型门户网站制作有一定的经验,曾经为上海天擎外贸行业网站、浙江兆龙营销型门户、先临三维门户营销网站提供全程的技术支持及SEO优化指导

    查看详情
  • 集团/上市公司网站
    集团/上市公司网站

    杭州派迪科技为杭州本地集团公司提供网页设计、制作、开发服务,为集团公司网站建设提供了响应式、营销型、品牌型、门户型网站建设需求,欢迎广大集团公司客户咨询

    查看详情
  • 外贸网站建设
    外贸网站建设

    杭州派迪科技为高端客户提供外贸网站咨询策划,外贸官网设计,外贸官网建设开发服务,以谷歌搜索引起算法为基础,为各行业外贸公司提供高端企业外贸网站定制、策划、设计、互动与制作

    查看详情
  • 企业网站建设
    企业网站建设

    高端专业、令人印象深刻的用户界面、易于访问——企业网站必须反映一切,因为派迪科技在这里提供帮助,凭借精湛的技术、丰富的经验、与客户的持续沟通以及对每一个细节的关注,我们确保在快速的周期时间内提供优质的服务。

    查看详情
  • 半定制网站
    半定制网站

    杭州派迪科技模板网站建设专题_各行业方案专题栏目提供各行业产品适合的网站建设方案,帮助企业了解派迪科技建站效果等信息,您可以通过本站了解各行业网站建设方案,如需要获取本行业定制网站建设方案,可以联系在线客服或拨打电话咨询

    查看详情

体验从沟通开始,让我们聆听您的需求!

开始您的数字化品牌体验! 15158117070 期待您的来电!

[ 网站建设×品牌官网设计×大策略营销门户×微信小程序开发×微信公众号开发]

派迪业务总监微信号

派迪业务总监微信号

了解最新项目报价

派迪产品经理微信号

派迪产品经理微信号

免费获取项目策划

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》

Cookie 偏好

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

管理cookie偏好

基本 cookies

始终允许

这些 cookies 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookies 的信息,但网站的某些部分将无法运行。这些 cookies 不存储任何个人身份信息。

性能 cookies

始终允许
这些 cookies 使我们能够计算访问量和流量来源,以便我们可以衡量和改进我们网站的性能。它们帮助我们了解哪些页面受欢迎和不受欢迎,并了解访问者如何在网站上移动。这些 cookies 收集的所有信息都是汇总的,而且是匿名的。如果您不允许这些 cookies,我们将不知道您何时访问了我们的网站,也无法监控其性能。

功能性 cookies

这些 cookies 收集信息用于分析和个性化您的定向广告体验。您可以使用此拨动开关来行使选择不获取个人信息的权利。如果您选择关闭,我们将无法向您提供个性化广告,也不会将您的个人信息交给任何第三方。

定位 Cookies

这些 cookies 可能由我们的广告合作伙伴通过我们的网站设置。这些公司可能会使用它们来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不直接存储个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许使用这些 cookie,您将体验到较少针对性的广告。

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》