利用Django搭建一個簡單的博客網站(一)


開發一個Django博客網站項目

需要准備的環境 python3以上

創建一個虛擬環境(以兼容不同的Django版本)

  1. 創建一個文件夾來專門存放Django(website)
  2. 安裝Django
    pip3 install django
  3. 打開cmd到website中創建虛擬環境(djangoenv為虛擬環境項目名)
    cd desktop/website
    python -m venv djangoenv
  4. 繼續輸入 djangoenv\Scripts\activate就可以將該虛擬環境激活了
    這是每一次使用虛擬環境都要進行的操作
    8.PNG
    以上虛擬環境就創建好了

創建一個Django項目

`django-admin startproject one(項目名)

9.PNG
初始化生成文件的用途
Manage.py 一個在命令行中可以調用的網站管理工具
one文件夾里
init.py 告訴Python這個文件夾是一個模塊
settings.py one項目中一些配置
urls.py 網站內各個網址聲明
usgi.py web服務器與django項目的接口

新建一個一個Django App

`cd one`
python manage.py startapp blog(app項目名)

再將App添加到settings.py里INSTALLED_APPS默認包括了一下Django自帶的應用:
10.PNG

  • django.contrib.admin--管理員站點
  • django.contrib.auth--認證授權系統
  • django.contrib.contenttypes--內容類型框架
  • django.contrib.sessions--會話框架
  • django.contrib.messages--消息框架
  • django.contrib.staticfiles--管理靜態文件的框架

默認開啟的某些應用至少需要一個數據表,所以在使用他們之前要創建一些表

python manage.py migrate

這個命令是用來檢查INSTALLED_APPS設置,為其中的每個應用創建需要的數據表(作用到數據庫文件)

Django的大致運行流程

11.png

對於不同路徑的響應(一般是在urls.py--blog中修改)

在blog文件夾下創建一個新的文件:urls.py用於處理網址的解析,同時在one文件夾下的urls.py中添加一條路徑
urls.py--one path('',include('blog.urls')),

  • urls.py--one中要添加from django.urls import path,include
  • urls.py--blog中添加from django.urls import path

函數include()允許引用其他的URLconfs.,他會截斷與此項相匹配的URL部分,並將剩余的字符串發送到URLconf以供進一步處理.包括其他URL模式時總應該使用include(),admin.site.urls是唯一的例外.

函數path()具有四個參數,兩個必須參數:routeview,兩個可選參數: kwargsname一般只填寫兩個必選參數:

route是一個匹配URL的准則.當Django響應一個請求時,他會從urlpatterns的第一項開始,按順序以此匹配列表中的項,直到找到匹配的項,這些准則不會匹配GET和POST參數或域名.

例如,URLconf 在處理請求 https://www.example.com/myapp/ 時,它會嘗試匹配 myapp/ 。處理請求 https://www.example.com/myapp/?page=3 時,也只會嘗試匹配 myapp/

path() 參數: view
當 Django 找到了一個匹配的准則,就會調用這個特定的視圖函數,並傳入一個 HttpRequest 對象作為第一個參數,被“捕獲”的參數以關鍵字參數的形式傳入。
route參數可以有一些特定的格式來處理路徑

  • <slug:blog_link>--slug可以識別字符和數字
  • <int:blog_id>--int用於識別數字,表示這個網址是個數字存到blog_id這個變量里
  • <str:blog_title>--str用於識別字符串

13.png

14.png

如上圖所示有一個默認的路徑http://127.0.0.1:8000/admin/

編寫模型

模型是您的數據唯一而且准確的信息來源.它包含您正在存儲的數據的重要字段和行為.一般來說,每一個模型都映射一個數據庫表

  • 每個模型都是一個python類,這些類繼承django.db.models.Model
  • 模型類的每個屬性都相當於一個數據庫字段
  • 綜上,Django正在給你一個自動生成訪問數據庫的API

19.png

20.png

三個關聯模型是為了防止出現重復過多的問題(方便添加數據)

21.png

在models.py文件中建立一個Post模型,還有與之相關聯的Category,Tag模型

  • ForeignKey()--一般用於一對多的模型
  • ManyToManyField()--一般用於多對多的模型
  • 關聯作者模型有現成的直接引入
    from django.contrib.auth.models import User

22.png

然后,想要在后台直接操作這三個數據,需要現在admin.py中注冊一下

24.png

  • from .models import Post,Category,Tag--將Post,Category,Tag從models.py中導入

  • admin.site.register --進行注冊

最后每當我們在models做了修改之后都需要執行兩個操作

python manage.py makemigrations
python manage.py migrate

第一個命令用於檢測你對模型文件的修改,並且把修改的部分作為一次遷移(這是一種對於變化的存儲形式)
第二個命令,在數據庫中創建新定義的模型的數據表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM