• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Django入門,建立虛擬環境、安裝Django、創建項目數據庫

    標簽: PythonWeb  Django

    Django入門

    說起編寫Web應用程序,首先想到的就是JavaWeb。現在了解下使用Python編寫Web應用程序。

    Django是一個Web框架——一套用于幫助開發交互式網站的工具。Django能夠響應網頁請求,還能讓我們輕松地讀寫數據庫、管理用戶等。

    建立項目

    建立項目時,首先需要以規范的方式對項目進行描述,在建立虛擬環境,以便在其中創建項目。

    建立虛擬環境

    要使用Django,首先需要建立一個虛擬工作環境。虛擬工作環境是系統的一個位置,可以在其中安裝包,并將其與其他Python包隔離。

    為創建一個新的目錄,將其命名為learning_log,再在終端切換到這個目錄,并創建一個虛擬環境。若使用的是Python3,便可使用如下命令去創建。

    E:\>cd E:\Users\Administrator\PycharmProjects\learning_log
    
    E:\Users\Administrator\PycharmProjects\learning_log>python -m venv ll_env

    這里使用模塊venv創建了一個名為ll_env的虛擬環境。

    **虛擬環境

    建立虛擬環境后,需要**它才能使用:

    # 這是windows系統中的**方法,其他系統不同
    E:\Users\Administrator\PycharmProjects\learning_log>ll_env\Scripts\activate
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>

    此時可以看到環境名包含在括號里。在這種情況下,可以在環境中安裝包,或使用已經安裝過的包。在ll_env中安裝的包僅在該環境處于**狀態下才可用。

    要停止使用虛擬環境,可執行命令”deactivate”

    安裝Django

    創建并**虛擬環境后,就可安裝Django了,Django也是僅在虛擬環境處于活動狀態時才可用。

    # 下載文件很小,但速度較慢
    # 若初次使用pip,可先查閱相關資料熟悉下使用方法,之前的文章也有提到過
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>pip install Django

    在Django中創建項目

    在依然處于活動下的虛擬環境中,使用如下命令創建一個新項目:

    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>django-admin.py startproject learning_log .

    接著可使用命令’dir’在終端查看該項目下的目錄,或者直接在pycharm編譯器,文件中查看。
    注:千萬不要忘記,后面一個句點,都則部署應用程序時將遇到一些問題。如果忘記添加,就將創建的文件和文件夾刪除(ll_env)除外,重新運行之前的命令。

    learning_log文件夾里包含了幾個比較重要的文件。其中settings.py指定Django如何與系統交互以及如何管理項目;文件url.py告訴Django應創建哪些網頁來響應瀏覽器請求;文件wsgi.py幫助Django提供它創建的文件。

    創建數據庫

    Django將大部分與項目相關的信息都會存儲在數據庫里,因此需要創建一個供Django使用的數據庫。如下所示,我們在處于活動虛擬環境中的情況下執行命令:

    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py migrate
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>dir

    在這里將修改數據庫稱為遷移數據庫。首次執行命令migrate時,將讓Django確保數據庫與項目的當前狀態匹配。在SQLite的新項目中首次使用這個命令時,Django將新建一個數據庫。

    查看項目

    下面來核實下是否正確創建了項目。重新打開一個終端,執行runserver命令。
    這里寫圖片描述
    Django啟動了一個服務器,讓我們可以查看系統中的項目,了解他們的工作情況。當在瀏覽器中輸入URL請求網頁時,Django做出響應。
    現在打開一款瀏覽器,并輸入URL:http://localhost:8000/;或http://127.0.0.1:8000/.此時將看到以下界面:
    ckllq

    注:若出現錯誤消息“This port is already in use”(指定端口已被占用),可以執行python manage.py runserer 8001,讓Django使用另一個端口。

    創建應用程序

    Django項目由一系列應用程序組成,它們協同工作,讓項目成為一個整體。暫時創建的一個應用程序,它將完成項目的大部分工作。

    在之前打開的終端窗口中切換到manage.py所在的目錄,**該虛擬環境,執行如下命令:
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py startapp learning_logs

    命令startapp appname讓Django建立應用程序所需的基礎設施。查看項目目錄,可以看到其中新增加的一個文件learning_logs。

    定義模型

    我們做一個“學習筆記”項目。每位用戶都需要在學習筆記中創建很多主題,用戶輸入的每個條目都與特定主題相關聯,這些條目將以文本的方式顯示。我們還需要存儲每個條目的時間戳,以便可以告訴每個條目都是什么時候創建的。

    現在打開model.py(在剛創建的learning_logs文件下),對其做如下修改:

    #當然可以只增加一個類,先進行測試。這里將Entry模型也寫進去了,以后會用到
    from django.db import models
    
    # Create your models here.
    class Topic(models.Model):
        # 用戶學習的主題
        text = models.CharField(max_length=200)
        date_added = models.DateTimeField(auto_now_add = True)
        def __str__(self):
            # 返回模型的字符串表示
            return self.text
    
    class Entry(models.Model):
        # 學到有關某個主題的具體知識
        # 使用外鍵關聯到Topic
        topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
        text = models.TextField()
        date_added = models.DateTimeField(auto_now_add = True)
        class Meta:
            verbose_name_plural = 'entries'
        def __str__(self):
            # 返回模型的字符串表示
            if len(self.text) > 50:
                 return self.text[:50] + '…'
            else:
                return self.text

    **模型

    要想使用模型,必須讓Django將應用程序包含到項目中。為此打開settings.py(它位于目錄learning_log/learning_log下),將看到如下片段,對其進行修改。

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # 我的應用程序
        'learning_logs',
    ]

    接下來需要讓Django修改數據庫,使其能夠存儲于模型Topic相關的信息。為此,在終端執行下面的命令:

    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py makemigrations learning_logs
    Migrations for 'learning_logs':
      learning_logs\migrations\0001_initial.py
        - Create model Topic
    
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
    Running migrations:
      Applying learning_logs.0001_initial... OK
    
    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>

    一切ok。

    每當我們需要修改“學習筆記”管理的數據時,都采用了如下單個步驟:修改model.py;對learning.py調用makemigrations;rangDjango遷移項目。

    Django管理網站

    Django提供了管理網站(admin site)可以讓我們輕松地處理模型。網站管理員可使用管理網站,但普通的用戶不行。
    1. 創建超級用戶
    Django允許你創建具備所有權限的用戶——超級用戶。權限決定了用戶可執行的操作。按執行下列命令并按提示去創建:

    (ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py createsuperuser
    Username (leave blank to use 'tzhou'): solarzhou
    Email address:
    Password:
    Password (again):
    Superuser created successfully.

    電子郵件字段可空,但密碼和用戶名必須設定。
    2. 向管理網站注冊模型
    Django將會自動在管理網站中添加了一些模型,如User和Group,但對于我們創建的模型,必須手工注冊才行。
    打開admin.py文件,添加一些代碼。

    from django.contrib import admin
    
    # Register your models here.
    from learning_logs.models import Topic,Entry
    
    admin.site.register(Topic)
    admin.site.register(Entry)

    這時可以訪問http://127.0.0.1:8000/admin,通過剛才創建的超級用戶名和密碼進行登錄。進去之后可以添加和修改用戶和用戶名,可以管理剛才定義的模型Topic相關數據。
    這里寫圖片描述
    此時便可在learning_logs下添加主題,并為主題添加條目。
    這里寫圖片描述

    了解到Django基礎知識后,我們便可以對網站進行管理了。接著進一步深入了解PythonWeb編程。

    版權聲明:本文為ZT7524原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/ZT7524/article/details/81192359

    智能推薦

    linux發布Django項目(創建虛擬環境與依賴庫)

    虛擬環境和依賴庫 建目錄 建虛擬環境 virtualenv /virtualenvwrapper venv Python3.3以后自帶的虛擬環境管理軟件 pipenv pip 和virtualenv的結合版! 自帶的venv創建虛擬環境 使用virtualenv管路虛擬環境 下載virtualenvpip3 install virtualenv 下載django/uwsgi 安裝nginx 查看軟...

    大型電商項目數據庫表設計

    1.Spu和Sku的概念 SPU:Standard Product Unit (標準產品單位) ,一組具有共同屬性的商品集 SKU:Stock Keeping Unit(庫存量單位),SPU商品集因具體特性不同而細分的每個商品 比如說小米8手機是Spu, 紅色的128g存儲空間,6g內存的小米8是Sku。 Spu是一組商品集合,Sku是能根據條件在Spu種唯一確定的一件商品 如本例中的: 本頁的 ...

    《Oracle Database編程指南》24-01:商城項目數據庫

    內容導航 1、商城項目數據庫 要求: 1、一個項目應該有一個獨立的表空間,稱為“項目表空間”; 2、一個“項目表空間”應該有一個獨立的用戶,稱為“項目用戶”; 3、使用Sys或者System創建“項目表空間”和“項目用戶”; 4、使用“項目用戶”創建表,或...

    Python_頭條項目數據庫(2)

    數據庫 數據庫設計 SQLAlchemy 數據庫理論 分布式ID Redis 數據庫設計 1 需求 根據黑馬頭條前臺產品原型圖中用戶端的部分,進行數據庫設計。 表結構 字段類型、是否允許為null、是否有默認值 索引設計 數據庫引擎的選擇 2 注意事項 為了查詢效率,可以做冗余字段設計(空間換時間的思想,屬于一種反范式設計) 字段類型的選擇 整型的存儲大小與顯示大小 mysql的字段,unsign...

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡