• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • 如何搭建 超市購物車 網(wǎng)站

      Django是一個非常受歡迎的全功能服務器端Python Web框架,可以快速開發(fā)安全和可維護的超市購物車網(wǎng)站。由經(jīng)驗豐富的開發(fā)人員構(gòu)建。Django負責處理Web開發(fā)大部分繁瑣的工作,因此您可以專注于編寫應用程序而無需重新編寫框架。它是免費和開源的,擁有蓬勃發(fā)展的活躍社區(qū),優(yōu)秀的文檔,以及許多免費和付費支持的選項。

      本篇教程將指導使用Django構(gòu)建一個簡單的超市購物車網(wǎng)站框架。您將會了解如何在服務器上搭建Python3及Django框架,并創(chuàng)建您的第一個項目。您需要準備一個云服務器CVM。還沒有云服務器的同學可以到華為云點擊產(chǎn)品中的云服務器,進行購買。

      開發(fā)環(huán)境是在本地計算機上安裝Django,您可以在將Django應用程序部署到生產(chǎn)環(huán)境之前用它們進行開發(fā)和測試。Django本身提供的主要工具是一組用于創(chuàng)建和使用Django項目的Python腳本,以及一個可用于測試本地(即在您的計算機上,而不是在外部Web服務器上)的簡單開發(fā) Web服務器。

      創(chuàng)建網(wǎng)站

      我們將介紹如何創(chuàng)建網(wǎng)站的基本框架,然后您可以對其進行設置,路徑選擇,模型搭建,視圖和模板填充。

      創(chuàng)建項目

      首先打開命令提示符/終端,確保您在虛擬環(huán)境中,導航 到您要存儲Django應用程序的位置,并為您的新網(wǎng)站創(chuàng)建一個文件夾(舉例:django_projects)。然后使用cd命令進入該文件夾:

      mkdir django_projects
      cd django_projects

      使用django-admin startproject 命令創(chuàng)建新項目locallibrary(您也可以使用其他命名),然后導航到該文件夾。

      django-admin startproject locallibrary
      cd locallibrary

      django-admin工具創(chuàng)建文件夾/文件結(jié)構(gòu),如下所示:

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

      我們當前的工作目錄應如下所示:

      ../django_projects/locallibrary/

      locallibrary項目的子文件夾是網(wǎng)站的入口點:

      • init.py是一個空文件,指示Python將此目錄視為Python包。

      • settings.py包含所有的網(wǎng)站設置。這是我們注冊我們創(chuàng)建的任何應用程序,靜態(tài)文件的位置,數(shù)據(jù)庫配置詳細信息等的地方。

      • urls.py定義站點URL到視圖的映射。雖然這可能包含所有 url映射代碼,但更常見的是將某些映射委托給特定應用程序,稍后您將看到。

      • wsgi.py 用于幫助您的Django應用程序與Web服務器通信。您可以將其視為樣板。

      manage.py腳本用于創(chuàng)建應用程序,與數(shù)據(jù)庫的工作,并開始開發(fā)網(wǎng)絡服務器。

      創(chuàng)建目錄應用程序

      接下來,運行以下命令來創(chuàng)建將存在于我們的localibrary項目中的目錄應用程序(這必須與項目的manage.py在同一文件夾中運行):

      python3 manage.py startapp catalog

      該工具將創(chuàng)建一個新文件夾,并使用文件填充該應用程序的不同部分(下面以粗體顯示)。大多數(shù)的文件會以其目的來進行有效地命名(例如,意見應存放在views.py,模型存在models.py,測試存在tests.py,管理站點配置是  admin.py,申請注冊是apps.py),并含有一些用于處理相關對象的最小樣板代碼。

      更新的項目目錄現(xiàn)在應如下所示:

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

      另外我們現(xiàn)在有:

      • 一個遷移的文件夾,用來存放“遷移” -文件允許你修改你的模型自動更新數(shù)據(jù)庫。

      • init.py - 這里創(chuàng)建的空文件,以便Django / Python將該文件夾識別為Python包,  并允許您在項目的其他部分中使用其對象。

      注冊目錄應用程序

      既然已經(jīng)創(chuàng)建了應用程序,我們必須將它注冊到項目中,以便在運行任何工具時將其包含在內(nèi)(例如,將模型添加到數(shù)據(jù)庫中)。通過將應用程序添加到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',

      新行指定在 創(chuàng)建應用程序時CatalogConfig/locallibrary/catalog/apps.py中為您生成的應用程序配置對象()。

      指定數(shù)據(jù)庫

      這也是您通常指定要用于項目的數(shù)據(jù)庫的點 - 在可能的情況下使用相同的數(shù)據(jù)庫進行開發(fā)和生產(chǎn)是有意義的,以避免一些細微的差別。您可以在(Django文檔)中找到有關不同選項的信息。

      我們將在這個例子中使用SQLite數(shù)據(jù)庫,因為我們不希望在演示數(shù)據(jù)庫上需要大量的并發(fā)訪問,而且因為它不需要額外的設置!您可以在settings.py中查看此數(shù)據(jù)庫的配置方式(下面還包含更多信息):

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

      因為我們使用的是SQLite,所以我們不需要在此處進行任何進一步的設置。

      其他項目設置

      settings.py文件也用于配置其他一些設置,但在這一點上,你可能只是想改變TIME_ZONE -這應該是與標準時區(qū)信息數(shù)據(jù)庫時區(qū)列表相等的字符串(在TZ列在表中包含您想要的值)。將您的TIME_ZONE值更改為適合您所在時區(qū)的其中一個字符串,例如:

      TIME_ZONE = 'Europe/London'

      您應該注意的其他兩個設置為:

      • SECRET_KEY。這是一個密鑰,用作Django網(wǎng)站安全策略的一部分。如果您不在開發(fā)環(huán)境中保護此代碼,則需要在將其放入生產(chǎn)環(huán)境時進行修改。

      • DEBUG。能夠讓調(diào)試日志顯示錯誤,而不是HTTP狀態(tài)代碼響應。在生產(chǎn)環(huán)境下應該設置為False,因為調(diào)試信息對攻擊者很有用,但是現(xiàn)在我們可以將其設置為True。

      連接URL映射器

      該網(wǎng)站使用項目文件夾中的URL映射文件(urls.py)創(chuàng)建。雖然您可以使用此文件來管理所有URL映射,但更常見的是將映射推遲到關聯(lián)的應用程序上 。

      打開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 的函數(shù)列表path()。每個path() 函數(shù)或?qū)RL模式與特定視圖相關聯(lián),該模式將在模式匹配時顯示,或者與另一個URL模式測試代碼列表相關聯(lián)。該urlpatterns 列表最初定義了一個函數(shù),該函數(shù)將所有帶有admin /admin.site.urls的URL映射到模塊,該模塊包含Administration應用程序自己的URL映射定義。

      將下面的行添加到文件的底部,以便將新的列表項添加到urlpatterns列表中。這個新項目包括將具有path()模式的請求catalog/ 轉(zhuǎn)發(fā)到模塊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')),]

      現(xiàn)在讓我們將我們網(wǎng)站的根URL(即127.0.0.1:8000)重定向到URL 127.0.0.1:8000/catalog/; 這是我們將在這個項目中使用的唯一應用程序。為此,我們將使用一個特殊的視圖函數(shù)(RedirectView),它將第一個參數(shù)作為匹配函數(shù)中的/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/')),]

      將路徑函數(shù)的第一個參數(shù)留空。如果您將第一個參數(shù)寫為'/',Django會在您啟動開發(fā)服務器時給出以下警告:

      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和圖像等靜態(tài)文件,但在創(chuàng)建站點時,開發(fā)Web服務器可以這樣做。作為此URL映射器的最終添加,您可以通過附加以下行在開發(fā)期間啟用靜態(tài)文件。

      現(xiàn)在將以下最終塊添加到文件的底部:

      # 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)

      最后一步,在目錄文件夾中創(chuàng)建一個名為urls.py的文件,并添加以下文本以定義導入的  urlpatterns。這是我們在構(gòu)建應用程序時添加模式的地方。

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

      測試網(wǎng)站框架

      此時我們有一個完整的框架項目。該我們將對其進行一些測試。

      在我們這樣做之前,我們應該首先運行數(shù)據(jù)庫遷移。這會更新我們的數(shù)據(jù)庫,包含我們安裝的應用程序中的任何模型(并刪除一些構(gòu)建警告)。

      運行數(shù)據(jù)庫遷移

      Django使用Object-Relational-Mapper(ORM)將Django代碼中的模型定義映射到底層數(shù)據(jù)庫使用的數(shù)據(jù)結(jié)構(gòu)。當我們更改模型定義時,Django會跟蹤更改并創(chuàng)建數(shù)據(jù)庫遷移腳本(在/ locallibrary / catalog / migrations /中),以自動遷移數(shù)據(jù)庫中的基礎數(shù)據(jù)結(jié)構(gòu)以匹配模型。

      當我們創(chuàng)建網(wǎng)站時,Django會自動添加一些模型供網(wǎng)站的管理部分使用(我們稍后會詳細介紹)。運行以下命令為數(shù)據(jù)庫中的這些模型定義表(確保您位于包含manage.py的目錄中):

      python3 manage.py makemigrations
      python3 manage.py migrate

      杭州網(wǎng)站建設指令 為項目中安裝的一切使用程序創(chuàng)建(但不使用)搬遷(您也能夠指定使用程序名稱以僅為單個項目運轉(zhuǎn)搬遷)。這使您有機會在使用這些搬遷之前檢查這些搬遷的代碼 - 當您對Django熟悉后,您能夠挑選略微調(diào)整它們!


      返回觀點列表
      本文標簽:

      相關專題

      • 品牌官網(wǎng)設計
        品牌官網(wǎng)設計

        杭州派迪科技為高端客戶提供品牌官網(wǎng)咨詢策劃,品牌官網(wǎng)設計,品牌官網(wǎng)建設開發(fā)服務,以國際化視野和標準為基礎,為各行業(yè)領軍品牌提供高端企業(yè)網(wǎng)站定制、策劃、設計、互動與制作

        查看詳情
      • 大策略營銷門戶網(wǎng)站
        大策略營銷門戶網(wǎng)站

        杭州派迪科技有自己的營銷型網(wǎng)站CMS系統(tǒng),適合白帽SEO網(wǎng)站。特別對大策略的營銷型門戶網(wǎng)站制作有一定的經(jīng)驗,曾經(jīng)為上海天擎外貿(mào)行業(yè)網(wǎng)站、浙江兆龍營銷型門戶、先臨三維門戶營銷網(wǎng)站提供全程的技術支持及SEO優(yōu)化指導

        查看詳情
      • 集團/上市公司網(wǎng)站
        集團/上市公司網(wǎng)站

        杭州派迪科技為杭州本地集團公司提供網(wǎng)頁設計、制作、開發(fā)服務,為集團公司網(wǎng)站建設提供了響應式、營銷型、品牌型、門戶型網(wǎng)站建設需求,歡迎廣大集團公司客戶咨詢

        查看詳情
      • 外貿(mào)網(wǎng)站建設
        外貿(mào)網(wǎng)站建設

        杭州派迪科技為高端客戶提供外貿(mào)網(wǎng)站咨詢策劃,外貿(mào)官網(wǎng)設計,外貿(mào)官網(wǎng)建設開發(fā)服務,以谷歌搜索引起算法為基礎,為各行業(yè)外貿(mào)公司提供高端企業(yè)外貿(mào)網(wǎng)站定制、策劃、設計、互動與制作

        查看詳情
      • 企業(yè)網(wǎng)站建設
        企業(yè)網(wǎng)站建設

        高端專業(yè)、令人印象深刻的用戶界面、易于訪問——企業(yè)網(wǎng)站必須反映一切,因為派迪科技在這里提供幫助,憑借精湛的技術、豐富的經(jīng)驗、與客戶的持續(xù)溝通以及對每一個細節(jié)的關注,我們確保在快速的周期時間內(nèi)提供優(yōu)質(zhì)的服務。

        查看詳情
      • 半定制網(wǎng)站
        半定制網(wǎng)站

        杭州派迪科技模板網(wǎng)站建設專題_各行業(yè)方案專題欄目提供各行業(yè)產(chǎn)品適合的網(wǎng)站建設方案,幫助企業(yè)了解派迪科技建站效果等信息,您可以通過本站了解各行業(yè)網(wǎng)站建設方案,如需要獲取本行業(yè)定制網(wǎng)站建設方案,可以聯(lián)系在線客服或撥打電話咨詢

        查看詳情

      體驗從溝通開始,讓我們聆聽您的需求!

      開始您的數(shù)字化品牌體驗! 0571-85815193 期待您的來電!

      [ 網(wǎng)站建設×品牌官網(wǎng)設計×大策略營銷門戶×微信小程序開發(fā)×微信公眾號開發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      項目開發(fā)部產(chǎn)品經(jīng)理

      項目開發(fā)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      我們正使用 cookies 來改善您的訪問體驗

      派迪科技非常重視您的個人隱私,當您訪問我們的網(wǎng)站www.bmwdream.cn時,請同意使用所有cookies 。

      如果您想詳細了解我們?nèi)绾问褂胏ookies請訪問我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細了解我們?nèi)绾问褂胏ookie請訪問我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運行所必需的,不能在我們的系統(tǒng)中關閉。它們通常僅針對您所做的相當于服務請求的操作而設置,例如設置您的隱私首選項、登錄或填寫表格。您可以將瀏覽器設置為阻止或提醒您有關這些 cookies 的信息,但網(wǎng)站的某些部分將無法運行。這些 cookies 不存儲任何個人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計算訪問量和流量來源,以便我們可以衡量和改進我們網(wǎng)站的性能。它們幫助我們了解哪些頁面受歡迎和不受歡迎,并了解訪問者如何在網(wǎng)站上移動。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時訪問了我們的網(wǎng)站,也無法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個性化您的定向廣告體驗。您可以使用此撥動開關來行使選擇不獲取個人信息的權(quán)利。如果您選擇關閉,我們將無法向您提供個性化廣告,也不會將您的個人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過我們的網(wǎng)站設置。這些公司可能會使用它們來建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關廣告。它們不直接存儲個人信息,而是基于唯一標識您的瀏覽器和互聯(lián)網(wǎng)設備。如果您不允許使用這些 cookie,您將體驗到較少針對性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>