Django 入門教程
目前的django知識都是源自對Resdig這個項目的開發過程的摸索
先ad一波
找各種電影視頻資源歡迎到Resdig.cn資源挖掘機

#進入正題 DJANGO開發環境搭建流程
#00_django安裝
命令行輸入
pip install django
如果你是linux 并使用python3 可能需要將pip換成pip3
#01_項目
##創建一個項目
django-admin.py startproject testproject
##認識項目目錄
此時你會看到當前目錄出現了一個文件夾
這個文件夾就是我們的剛創建的項目文件夾
其內部結構如下
testproject/manage.py 是一個項目管理腳本 后面會經常用到
testproject/testproject/ 內部結構如下
在本教程中我們只需要關注該目錄下的兩個文件
testproject/testproject/setting.py 這個文件是整個項目的配置文件
testproject/testproject/urls.py 這個文件是整個項目的根路由配置文件
##運行服務并測試
進入 testproject/ 并在該目錄打開powershell或cmd
用python調用manage.py 讓在本地主機80端口啟動服務
python manage.py runserver 0.0.0.0:80
你會看到
訪問 127.0.0.1(linux 0.0.0.0)
這就ok了
#應用的創建,認識,基本修改與測試
#創建
什么是應用? 前輩之前舉過一個例子:如果說項目project是一個大學,那么應用就是學院,每個學院有自己的特定工作.
進入目錄 testproject/ 打開命令行
python manage.py startapp testapp
此時你會看到出現了一個 testapp文件夾 這就是我們的應用文件夾
##認識
進入testproject/testapp/你會看到這樣的目錄結構
考慮到入門在這里我們只關注一個文件
testproject/testapp/views.py 它叫視圖 其中的函數是處理請求并作出響應的函數 是我們后端開發中的主戰場之一
番外篇------------------Django的 MTV 開發模式
M: models 模型 指的是數據庫
T: templates 模板 指的是 html 模板
V: views 視圖 指的是views.py 處理函數
用一句話來概括 views/V視圖得到一個請求/request后對請求進行一些操作與判斷,然后調用合適的模板templates/T,并在數據庫models/M中提取相應的數據合成一個響應
通俗的來說 顧客喊話(請求/request)來份大盤雞 大廚(視圖/views/V)翻出菜譜(模板/templates/T) 并從倉庫(模型/models/M)中拿出調料雞肉(數據)做出一份大盤雞(響應)
現在 我們來完善一下文件 在testproject/testapp/ 下建立 一個urls.py
此文件是testapp的url文件 由這個文件可以將請求指向views.py下的具體處理函數
下面我們來一步一步配置一下url 理解下一個請求django是如何處理的
01_修改根路由文件 testproject/testproject/urls.py
"""testproject 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 admin
from django.urls import path,include#引入include
urlpatterns = [
path('admin/', admin.site.urls),
path('testapp/', include('testapp.urls')),#如果請求的路徑是'/testapp'則指向testapp的路由文件
]
02_修改testapp的路由文件 testproject/testapp/urls.py
from django.urls import path #引入path
from . import views #引入testapp的views
urlpatterns = [
path('', views.home),#將testapp/路徑指向函數home
path('page_1/', views.page_1),#將testapp/page_1路徑指向函數page_1
]
03_修改views中的處理函數
from django.shortcuts import render
from django.http import HttpResponse,JsonResponse,HttpResponseNotAllowed,HttpResponseBadRequest#引入響應類
# Create your views here.
#定義你的函數 以請求request為輸入 以某個響應類作為返回
def home(request):
return HttpResponse('hello world! homepage is ok!')
def page_1(request):
return HttpResponse('this is a testapp in testproject! page_1 is ok!')
#####這樣我們可以看出 django是根據訪問路徑將請求通過根urls.py指向具體應用的urls.py 再由應用的urls.py指向應用的具體處理函數 處理函數處理后做出一個響應
##測試
運行服務
PS D:\project\testproject> python manage.py runserver 0.0.0.0:80
Performing system checks...
System check identified no issues (0 silenced).
You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 13, 2018 - 12:01:24
Django version 2.0.7, using settings 'testproject.settings'
Starting development server at http://0.0.0.0:80/
Quit the server with CTRL-BREAK.
訪問127.0.0.1/testapp/
訪問127.0.0.1/testapp/page_1/
命令行中會顯示訪問記錄
[13/Aug/2018 12:06:24] "GET /testapp/ HTTP/1.1" 200 29
[13/Aug/2018 12:06:37] "GET /testapp/page_1/ HTTP/1.1" 200 48
#…未完待續…
關于allow_host的問題。。。。
關于csrf的問題
我們可以在
Forbidden (CSRF cookie not set.): /api/
智能推薦
docker部署簡易Django項目(詳細入門教程)
百度找來的博客,關于docker部署Django的博客一大堆,但是可以說都是垃圾,要么語焉不詳、講的不明不白,要么排版極爛,一看就是復制粘貼,看了也只是浪費時間、自找麻煩。下面的教程是官方教程的翻譯和實踐(采坑),寫的十分詳盡,保證一步步全部解釋清楚,實驗環境為ubuntu18。 參考官方教程Quickstart: Compose and Django 一、前提準備 1、安裝docker 參考 h...
Django教程 —— Django入門
目標 了解虛擬環境,熟悉Django項目、manage.py的指令、配置文件。 使用Django框架有一個全面的認識,包括開發流程、基本概念要素。 創建自己的第一個Django項目——圖書管理系統(BMSTest)。 準備開發環境 編程語言 版本 Python 3.9.0 這篇博客安裝教程挺詳細的:Python環境安裝教程 第三方庫/框架 版本 說明 Django 3.1....
Django入門教程(一):安裝python3.8及Django3.0
python安裝 1.官方網站下載installer 2.勾選添加path,此處可以默認安裝也可以自定義安裝,我這里選擇了自定義 3.選next 4.選擇自己喜歡的安裝路徑,這里我忘記截圖了 5.如果此處出現了管理員圖標,則點擊,然后提示授權 6.查看python版本,證明安裝成功(即使安裝在D盤,也可以在C盤環境下執行python命令) Django安裝 1.升級一下pip 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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...