Python雲端系統開發入門——框架基礎

来源:https://www.cnblogs.com/yan-lei/archive/2017/12/29/8140373.html
-Advertisement-
Play Games

Django框架基礎 這是我學習北京理工大學嵩天老師的《Python雲端系統開發入門》課程的筆記,在此我特別感謝老師的精彩講解和對我的引導。 1、Django簡介與安裝 Django是一個免費、開源的Web應用框架,由Python寫成。採用了MTV(Model-Template-View)的框架模式 ...


Django框架基礎

這是我學習北京理工大學嵩天老師的《Python雲端系統開發入門》課程的筆記,在此我特別感謝老師的精彩講解和對我的引導。

1、Django簡介與安裝

Django是一個免費、開源的Web應用框架,由Python寫成。採用了MTV(Model-Template-View)的框架模式。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發佈。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。 ————百度百科

Django是一個產品級框架,支持全球近萬個網站及雲端。相比其他框架,Django充分利用Python特點,開發效率更高。

Django框架的官方文檔:https://docs.djangoproject.com/en/2.0/

Django官方對Django的支持:

使用“pip”命令進行安裝:pip install django

Django版本查看:cmd執行 “python -m django --version”

因為Django 1.x版本和Django 2.x版本差異較大,確認安裝的環境是python 3.x和Django 2.x版本。

如果安裝了Django 1.x版本,可以使用“pip list”進行查看。可以使用“pip uninstall django”命令進行卸載後,再安裝Djang 2.0。

2、Django框架的最小程式

步驟1:建立一個Web框架工程

\>django-admin startproject mysite

執行命令後,會生成一個文件夾。工程目錄結構:

mysite/                           外層目錄,名字可以更改
        mysite/                   工程目錄,保存代碼和文件
            |- __init__.py        一個將mysite定義為包的空文件
            |- settings.py        部署和配置整個工程的配置文件(配置文件)
            |- urls.py            URL路由的聲明文件(路由文件)
            |- wsgi.py            基於WSGI的Web伺服器的配置文件
        manage.py                 一個與Django工程進行交互的命令工具

步驟2:修改工程,增加功能

可以跳過這一步,直接執行步驟3,不配置任何路由時,顯示如下界面。

           

步驟2-1:創建一個具體應用(app)

\>python manage.py startapp helloapp

工程和應用之間的關係:

  • 工程對應於一個網站,是配置和應用的集合
  • 應用對應於特定功能,是具體功能的載體
  • 配置和功能分離是高度模塊化的體現

步驟2-2、修改應用的views.py:對URL的具體響應功能

"在helloapp\"下新建一個"templates/"目錄,併在目錄下新建一個"HTMLJSDemo.html"文件。

views.py中包含對某個HTTP請求(url)的響應。

from django.shortcuts import render
# Create your views here.
def hello(request):
    return render(request,"HTMLJSDemo.html")

render()是一個打包函數,第一個參數是request,第二個是參數是頁面。

2-3:在hello2app應用中,新增urls.py文件(本地路由文件)

from django.contrib import admin
from django.urls import path
from . import views
# . 代表當前app

urlpatterns = [
    path('',views.hello),
    path('admin/', admin.site.urls),
]

2-4:在全局路由文件中增加對本地應用路由文件的引用

from django.contrib import admin
from django.urls import path,include
# include()函數,用於引入其他路由文件

urlpatterns = [
    path('index/',include('helloapp.urls')),
    path('admin/', admin.site.urls),
]

2-5:設置模板路徑

設置模板路徑,讓Django框架找到模板所在目錄。 修改mysite/settings.py文件中的TEMPLATES屬性。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'hello2app/templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

步驟3:調試運行Web框架

在mysite工程目錄下:

\>python manage.py runserver

django-admin:Django框架全局的管理工具

\>django-admin <command> [options]
    • 建立並管理Django工程
    • 建立並管理Django工程使用的資料庫
    • 控制調試或日誌信息
    • 運行並維護Django工程
    • 可以使用“\>django-admin help”查看到更多的功能。

manage.py

\>python manage.py <command> [options]

與django-admin類似,但僅針對當前項目。

3、Django的MTV開發模式

M:Models模型(數據)

與數據組織相關的功能

組織和存儲數據的方法和模式,與數據模型相關的操作。

T:Templates模板(樣式)

與表現相關的所有功能

頁面展示風格方式,與具體數據分離,用於定義表現風格。

V:Views視圖(處理)

針對請求選取數據的功能

選擇哪些數據用於展示,指定顯示模板,每個URL對應一個回調函數。

4、實例1:雲端留言板之基礎框架

4.1、基本功能定義

  • 提交留言功能

    用戶設定自己的名字為A,指定任意名字B向B留言,記為msg,留言保存在雲端

  • 獲取留言功能

    輸入名字C,雲端返回10條最新留言記錄

4.2、開發要求

  • 弱化Web設計,有簡單的Web界面即可
  • 重視雲端設計,掌握Django庫的使用
  • 數據用文件的方式存儲

4.2、雲端留言板開發流程

1.新建工程cloudms

2-1.新建應用msgapp

2-2.增加模板,即顯示頁面的HTML/CSS/JS代碼,配置路徑

2-3.設定URL路由,本地路由和全局路由

2-4.編寫交互代碼

3.運行工程

代碼下載

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 開始之前先進行 FastDFS安裝配置 ,之後才是以下操作。 1 安裝依賴 yum -y install gcc-c++ zlib-devel pcre-devel 2 創建安裝路徑 mkdir -p /usr/local/nginx 3 配置檢測、編譯、安裝nginx 上傳解壓nginx-fast ...
  • 單點登錄系統設計 胡亂寫的,俺自己都不知道對錯,別當真!!! 1. 系統概述 此系統主要解決多個功能變數名稱情況下,避免用戶反覆性登錄問題。大多數企業初期不需要考慮單點登錄的問題,但是隨著企業逐漸發展壯大遲早會面臨這個問題,作為技術負責人理當重視此事。 2. 業務對象 a) SSO返回給產品的LoginTo ...
  • 前臺: 支持四套模版, 可以在後臺切換 系統介紹: 1.網站後臺採用主流的 SSM 框架 jsp JSTL,網站後臺採用freemaker靜態化模版引擎生成html 2.因為是生成的html,所以訪問速度快,輕便,對伺服器負擔小 3.網站前端採用主流的響應式佈局,同一頁面同時支持PC、平板、手機(三 ...
  • 1、安裝依賴 2、上傳解壓libfastcommon 解壓 編譯,安裝 3、安裝fastdfs 3.1 上傳解壓 3.2編譯安裝 3.3修改配置文件 去除/etc/fdfs/目錄下配置文件.smple尾碼 創建目錄 修改三個文件 1.修改client.conf 2.修改tracker.conf 3. ...
  • FastDFS安裝配置過程中出現錯誤提示"/home/yuqing/fastdfs" can't be accessed, error info: No such file or directory ...
  • 一、無所不在的連接 針對不通的使用場景,無線網路技術有很多種。 鑒於無線網路技術如此多樣,籠統地概括所有無線網路的性能優化手段是不可能的。好在大多數無線技術的原理都是相通的,衡量性能的指標和約束條件也具有普遍實用性。只要把影響無線性能的基本原理搞清楚,那其他問題自然也就迎刃而解了。 二、無線網路的性 ...
  • Jackson相關:使用Jackson相關的註解時一定要註意自己定義的屬性命名是否規範。 命名不規範時會失去效果。(例如Ename ,Eage 為不規範命名。“nameE”,“ageE”為規範命名)。如果使用@JsonIgnore註解不起效時請註意一下你的屬性名字是否規範。 1、@JsonIgnor ...
  • 以d:\a目錄為例,假設D:\a目錄內的結構如下: 4.1 示例1:列出整個目錄中的文件(遞歸) 思路:1.遍歷目錄d:\a。2.每遍歷到d:\a中的一個目錄就遍歷這個子目錄。因此需要判斷每個遍歷到的元素是否是目錄。 以下是從普通代碼到遞歸代碼前的部分代碼: 對重覆的代碼部分進行封裝,於是使用遞歸方 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...