1. 程式人生 > >Django中的Hello World體驗

Django中的Hello World體驗

要建立一個Django專案非常簡單,使用startproject命令,輸入專案名稱:

$ django-admin.py startproject mysite

Django會在當前目錄下自動生成一個名為mysite的資料夾,裡面有以下檔案:

├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

以上是Django 1.4以後的目錄結構(如果是1.4之前的版本,manage.py和settings.py等檔案是在同一層)。站點的配置放在與專案同名的一個app裡(本例中是mysite),所以下文的專案資料夾

指的是mysite,注意不要和mysite/mysite資料夾混淆。

  • __init__.py:Python特性,可以是空檔案,表明這個資料夾是一個可以匯入的包。
  • settings.py:配置檔案,本文主要修改資料庫資訊、模板目錄、載入模組的資訊。
  • url.py:URL配置檔案,指定函式與URL的對映關係。
  • wsgi.py:本文中不會使用,nginx/apache+wsgi在生產環境中執行Django時使用。

建立完成後,在專案資料夾啟動Django自帶的web伺服器。Django會自動檢查配置檔案中的錯誤,如果全部正常則順利啟動:

$ python manage.py runserver
Validating models...
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

June 01, 2015 - 00:00:00
Django version 1.8.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

訪問http://127.0.0.1:8000,如果順利顯示,說明Django已經安裝成功了。但現在只有本機可以訪問,要讓外網能夠訪問,或是要更換預設的8000埠,可以執行命令:

$ python manage.py runserver 0.0.0.0:8080

這樣就將埠修改為8080,且外網也可以通過IP訪問本機上的Django。

注意紅字部分提示還沒有執行migrate。這是1.7版本加入的資料庫遷移工具,執行:

$ python manage.py migrate

可以看到Django建立了身份認證(auth)相關的表,預設是sqlite資料庫,所以專案資料夾下會生成db.sqlite3這個檔案。

現在要讓Django支援MySQL資料庫。編輯配置檔案(mysite/mysite/settings.py)。找到DATABASES的配置,當前版本是在77行,預設是sqlite,把它改成MySQL:

12345678910DATABASES={'default':{'ENGINE':'django.db.backends.mysql',#設定為mysql資料庫'NAME':'dmyz',#mysql資料庫名'USER':'root',#mysql使用者名稱,留空則預設為當前linux使用者名稱'PASSWORD':'root',#mysql密碼'HOST':'',#留空預設為localhost'PORT':'',#留空預設為3306埠}}

程式碼的中文註釋,在不指定Python檔案編碼的情況下會引起SyntaxError,所以不要複製這些中文註釋。下文的中文註釋同理。

Django(Python)操作MySQL依賴第三方包,所以要先安裝MySQL for Python

$ wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip
$ unzip MySQL-python-1.2.5.zip
$ sudo python setup.py install

可能會提示EnvironmentError: mysql_config not found。因為沒有安裝開發工具包,所以找不到mysql_config檔案,執行:

$ sudo apt-get install libmysqld-dev

安裝模組後再次執行migrate命令,如果相關的模組/庫都正確安裝,Django會建立下列表:

mysql> show tables;
+----------------------------+
| Tables_in_dmyz |
+----------------------------+
| auth_group
| auth_group_permissions
| auth_permission
| auth_user
| auth_user_groups
| auth_user_user_permissions
| django_admin_log
| django_content_type
| django_migrations
| django_session
+----------------------------+
10 rows in set (0.00 sec)

URL

現在首頁還是預設內容。Django會通過URL配置檔案來查詢相應的物件,URL地址使用正則表示式設定。在mysite/mysite目錄下可以找到urls.py檔案,它是URL配置的預設起點,修改這個檔案增加首頁的配置:

1 2 3 4 5 6 7 8 9 fromdjango.conf.urls importinclude,url fromdjango.contrib importadmin from.importviews#引入views urlpatterns=[ url(r'^admin/',include(admin.site.urls)), url(r'^$',views.home),#增加一條URL規則,r'^$'表示首頁(/) ]

在mysite/mysite資料夾下新建views.py檔案,內容如下:

123fromdjango.http importHttpResponsedefhome(request):returnHttpResponse('hello, world')

重新整理網站首頁,看到已經輸出了"hello, world"。

Application

上一節"hello world"的例子只是說明了URL的用法,這節才是本文重點:編寫一個名為articles的應用,從MySQL資料庫裡讀取出文章作者、標題、內容。

首先建立應用,在專案資料夾中執行:

$ python manage.py startapp articles

執行後在專案資料夾中會建立article資料夾,包含下列檔案:

articles/
├── admin.py
├── __init__.py
├── migrations
  └── __init__.py
├── models.py
├── tests.py
└── views.py
  • admin.py:當前應用在Django管理介面的設定。
  • migrations:資料庫遷移用資料夾,建立的migrate會存在這個資料夾裡。
  • models.py:模型檔案,用 Python 類來描述資料表。
  • views.py:檢視檔案,用來聯絡模型與模版,主要的業務邏輯一般都寫在這裡。
  • tests.py:單元測試檔案。

生成應用之後,要修改配置檔案,告訴Django這個應用是屬於當前專案的。開啟配置檔案(mysite/mysite/settings.py),找到INSTALLED_APPS元組,增加articles:

1 2 3 4 5 6 7 8

相關推薦

DjangoHello World體驗

要建立一個Django專案非常簡單,使用startproject命令,輸入專案名稱: $ django-admin.py startproject mysite Django會在當前目錄下自動生成一個名為mysite的資料夾,裡面有以下檔案: ├──

java 簡介、JDK安裝、Hello World體驗、java語法(標示符、關鍵字)、變數、運算子

1、java介紹: Java的發展可以歸納如下的幾個階段: ---------------第一階段(完善期)1995-1998 ---------------第二階段(平穩期):JDK 1.3一JDK 1.4; ---------------第三階段(發展期):JDK1.52005年推出-----JDK

djangohello world

新建一個django工程 在目標目錄下執行命令 django-admin startproject hello 成功後會產生如下檔案 簡單說明: Manage.py:工程的管理檔案,後續啟動工程等命令都是執行這個指令碼; Settings.py:工程配置檔案; Urls

虛擬環境下Django建立、執行專案、在網頁顯示簡單的hello world

Django建立專案及虛擬環境搭建 1.  使用workon 搭建基於python3.6的django開發環境 2. 進入虛擬環境,使用豆瓣源下載django框架,等待下載完成即可 推薦下載1.11版本 pip install django==1.11 3. 

django celery的分布式異步之路(一) hello world

settings csrf trac 選擇 load 你在 函數 1.2 密碼 設想你遇到如下場景: 1)高並發 2)請求的執行相當消耗機器資源,流量峰值的時候可能超出單機界限 3)請求返回慢,客戶長時間等在頁面等待任務返回 4)存在耗時的定時任務 這時你就需要一個分布

在Android Studio創建(或添加)第一個Hello World應用程序

創建過程 eight 過程 使用真機 項目路徑 應用程序 設備 ext 直接 下面我們將使用Android Studio創建第第一個簡單的Hello World應用程序。 1、打開Android Studio,加載畫面如下圖所示: 2、選擇”Start a new A

Django學習案例一(blog):二.Hello world

dmi 目錄 默認 hello 顯示 span image views req 1.添加APP 修改settings文件,在INSTALLED_APPS中添加自己建的APP名:blog INSTALLED_APPS = [ ‘django.contrib.adm

Django 創建 hello world

user rate 圖片 命令 server start 導入 cal 返回 前言 用Django 創建 hello 哈哈,對這個還是有點意思的 創建文件 在你的目錄下 比如我是 F:\python\django 的輸入下面的代碼: django-ad

ASP.NET Core使用GraphQL - 第一章 Hello World

前言 你是否已經厭倦了REST風格的API? 讓我們來聊一下GraphQL。 GraphQL提供了一種宣告式的方式從伺服器拉取資料。你可以從GraphQL官網中瞭解到GraphQL的所有優點。在這一系列部落格中,我將展示如何在ASP.NET Core中整合GraphQL, 並使用GraphQL作為你的A

flask和django在建立專案了和配置上的區別(以hello world為例)

對比flask和django建立專案: flask確實簡單: # 匯入庫 # 例項化一個app # 定義一個檢視函式 # 建立templates模板(這裡需要注意的是templates檔案的目錄需要和有(app.run())的檔案要是在同一級目錄,不然會報模板找不到) #啟動

django 的基礎配置以及hello world例項

1:pip install django(我一般使用的是virtualenvwrapper建立虛擬環境,這樣有利於環境的隔離)具體看我得另外一篇部落格: 2:需要切換到你需要存放專案的目錄下:使用命令如下 django-admin startproject project_name 3:

Go語言環境安裝,驗證go語言環境、使用文字編輯器編寫一個go hello world,Go lang IDE安裝,在golang新建一個go程式

1 Golang語言環境安裝包下載 https://www.golangtc.com/ 下載: go1.9.2.windows-amd64.msi 和 go1.9.2.windows-amd64.zip 2 golang語言環境安裝 本筆記使用go1.10.2.window

(二) Django-Hello World

Django 前言 當前環境: Ubuntu18 + Python3.6.5 + Django2.1.1 Django is a high-level Python Web framework that encourages rapid developmen

Django框架之Hello World

Pycharm中Django專案建立 1. 利用Pycharm直接開啟,新建一個Django專案:File --> New Project --> Django... Django建立過程 注意:專案名字不能和App名字重合。 2. 建立結束後進入系統,

在Qt Quick一個簡單Hello World載入過程

  Qt5基本類圖:       QQmlEngine    QQmlEngine類提供了一個QML引擎,用於管理由QML文件定義的物件層次架構,QML提供了一個預設的QML上下文(根上下文,獲取函式QQmlEngine::rootCo

C++之記憶體管理——在堆申請100個char型別的記憶體,拷貝Hello world字串到分配的堆的記憶體,列印字串,最後釋放記憶體。

首先先看一下簡單的案例 程式碼如下 #include<iostream> using namespace std; int main() { //整數1 int *x = new int; if(NULL==x) { return 0;

通過幾個Hello World感受.NET Core全新的開發體驗

2016年6月27日,這是一個特殊的日子,微軟全新的.NET開發平臺.NET Core的RTM版本正式釋出。我個人將.NET Core的核心特性歸結為三點,它們的首字母組成一個非常好記的簡稱——COM,分別代表的含義Cross-Platform、Open-Source和Modularization。開發.NE

在Visual Studio 2017建立第一個Hello World應用

Visual Studio是一套完備的工具和服務,可幫助您在Microsoft平臺或其他平臺建立各種各樣的應用程式。本文旨在指導如何在Windows Visual Studio平臺上使用XAML和C#建立一個簡單的“Hello World”應用。通過本文你將瞭解到面向Windows 10和UWP如何

Linux核心程式設計初體驗 —— hello world

模組編譯好了,但是還不能為我們工作。下面就是將目標模組插入到核心和從核心中刪除。這裡需要用到兩個命令,insmod和rmmod 我們光看這兩個命令單詞就能猜出他們的意思。輸入命令:sudo insmod hello.ko(注意要用sudo),這時沒有任何提示,很多人會很奇怪,剛才不是說過,模組載入後,程式中

Python入門基礎(8)-python直譯器初體驗列印hello world

通過之前的教程,已經掌握了python2.7和3.6的安裝與,解除安裝了,win7系統上應該已經有了兩個python,及python2.7和python3.6共存了。接下來筆者將以python3.6為主,介紹python語言的基礎語法等,同時會穿插一些和pyth