tft每日頭條

 > 科技

 > windows django開發教程

windows django開發教程

科技 更新时间:2025-03-26 01:48:34

用django寫了一個網站,在信息技術課上學生學習python用的,現在把整個過程寫成教程展現出來。先看幾個截圖:

windows django開發教程(在線編程學習網站開發教程)1

python編程練習

windows django開發教程(在線編程學習網站開發教程)2

代碼編譯界面

windows django開發教程(在線編程學習網站開發教程)3

知識測試界面

這個網站是ubuntu21.10,anaconda3下用VScode來完成的,編程判題采用了QingdaoU/JudgeServerAPI,網站試題來自卓帆、百日沖刺和科教版高中信息技術教材上的一些内容,在此表示感謝!

一、配置網站開發環境

為了本教程,全新配置了開發環境,整個網站複刻了一遍。

  1. 在 /home/下創建lichee文件夾,歸屬用戶名wuxc
  2. 用conda 創建python虛拟環境,名為lichee-django,指定python版本
  3. 激活虛拟環境lichee-django,pip或conda安裝django
  4. 使用pip list或conda list可以查看已經安裝的python庫
  5. 在/home/lichee下用django-admin創建django網站項目,項目名稱名和文件夾名都是almond
  6. 在項目/home/lichee/almond/下新增應用django-admin startapp webcoding
  7. 用tree終端命令查看目錄結構和文件列表

過程如下,有省略:

windows django開發教程(在線編程學習網站開發教程)4

開發環境配置

windows django開發教程(在線編程學習網站開發教程)5

開發環境配置續

項目文件夾almond下有一個同名子文件夾,我們稱為主應用,内有全局參數設置文件settings.py,全局路由文件urls.py,還有網關接口文件可以選擇其一asgi.py或wsgi.py; 項目目錄下的manage.py文件是整個項目的入口,在配置文件中有一行:WSGI_APPLICATION = 'almond.wsgi.application'指定了使用wsgi。

打算在主應用中加views.py和models.py,把網站的首頁、登錄功能放入views中,把網站的所有數據庫模型放在models中,供其它應用調用。

應用(app)是django管理代碼的一種方式,它對應一個文件夾,用以管理整個項目的功能分類和MTV模式實現。使用 django-admin startapp <appname>命令,創建應用(app)webcoding,在應用webcoding中實現在線的代碼編輯器功能,代碼執行由後端的JudgeServer來編譯執行,結果返回到前端。這個網站是提供統一的python編程環境和高中信息技術學業水平考試複習之用的。主應用almond和應用webcoding的目錄結構如下:

windows django開發教程(在線編程學習網站開發教程)6

網站目錄結構

lichee[ˌlaɪˈtʃiː]荔枝、almond [ˈɑːmənd] 杏仁,這裡選用的水果名作為目錄名稱,是因為短簡易記。almond 因首字母是a,在vscode中主應用almond顯示在最前面,便于使用。

二、實現Hello World:

vscode 打開 項目文件夾/home/lichee/almond,以下叙述都以項目文件夾為當前目錄,

點擊左下角更換 python解釋器,選擇 虛拟環境lichee-django,重啟vscode生效:

windows django開發教程(在線編程學習網站開發教程)7

vsCode開發網站

在模塊almond文件中新建views.py文件,在其中寫一個視圖函數defalut,并在urls.py文件中導入這個視圖,添加兩行路由地址:

// almond/views.py from django.shortcuts import render, HttpResponse def default(request): return HttpResponse("Hello world!!!") //把字符串作為回應返回到浏覽器 // almond/urls.py from django.urls import path, re_path // 導入視圖模塊 import almond.views as tv urlpatterns = [ path('admin/', admin.site.urls), // 系統自動産生,後台管理的,請要是庫的CRUD // 添加兩行路由地址 re_path(r'^$', tv.default, name='top'), // http://127.0.0.1:8000 訪問 path('index/', tv.default, name='index'), // http://127.0.0.1:8000/index 訪問 ]

在vscode的終端啟動服務(系統終端中也可以):

conda activate lichee-django cd /home/lichee/almond python manage.py runserver

在浏覽器中可以打開helloworld網頁了。視圖可以一個函數,也可以是一個類的方法,效果如下:

windows django開發教程(在線編程學習網站開發教程)8

網站啟動命令

三、初步理解MTV模式

django 作為python網站開發的框架,使用了MTV模式,如下圖(來自互聯網)

windows django開發教程(在線編程學習網站開發教程)9

MTV模式

剛才是通過 HttpResponse('string')返回前端的,現在改進一下,創建一個模闆文件index.html,在視圖中rend()函數渲染好返回前端,這是體現MTV模式前後端代碼分離的基本行為。

在項目目錄中創建模闆文件夾templates,在其中新建文件index.html。

在主應用中修改settings.py幾個地方:

//almond/settings.py INSTALLED_APPS = [ //注冊應用,實際是讓項目能找到 對應的文件夾 ...... 'almond', //注冊主應用,因為在其他應用中 調用 主應用中 視圖和模型 //其他書籍和教程都沒這麼用,我嘗試了是可以的 'webcoding', //注冊 在線編程應用,後續還要添加更多的應用 ] #模闆文件夾 TEMPLATES = [{ ...... // 模闆文件夾 almond/templates 'DIRS': [ BASE_DIR/'templates' ], //BASE_DIR是項目文件夾的絕對路徑。 ...... } ] ALLOWED_HOSTS = [ '*' ] //指定IP地址,可以從其他機器訪問,'*'是任意的意 思,您的計算機可能在不同場合的ip不一樣,'*'就可以了。 //語言和時區 LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' //創建并配置 靜态文件夾almond/statics,存放 css js img media等資源文件。 STATIC_URL = '/static/' //這個在html 或 浏覽器中使用,名稱可自定義 STATICFILES_DIRS = [ BASE_DIR/'statics' ] //這個是實際位置

接下來,修改almond/views.py, templages/index.html 兩個文件:

// almond/views.py from django.shortcuts import render, HttpResponse class MainView(): def default(request): myname = "wuxiaochun 吳曉春" return render(request, 'index.html', {'name':myname})

<!-- templates/index.html --> <html> <head> <title> 這是首頁demo </title> </head> <body> <p> <h1> Hello world !!!</h1> <font color='blue' size='6'> I am {{name}} </font> </p> </body> </html>

指定端口運行,效果如下:

windows django開發教程(在線編程學習網站開發教程)10

網站運行效果

在視圖文件almond/views.py中把變量以字典的形式通過render()函數渲染給了模闆文件templates/index.html,在index.html通過模闆語法{{變量名}}的形式來顯示。

render函數中第三個參數也可以用 locals() 來代替。

在上面MTV模式圖中還有一個Model稱為模型,它是連接讀寫數據庫的中介,後續介紹。第一講就到這裡,不足之處請指正。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved