<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本章我們將介紹Django 管理工具及如何使用 Django 來建立專案,第一個專案我們以 HelloWorld 來命令專案。
安裝 Django 之後,您現在應該已經有了可用的管理工具 django-admin.py。我們可以使用 django-admin.py 來建立一個專案:
我們可以來看下django-admin 的命令介紹:
$ django-admin.py
使用 django-admin.py 來建立 HelloWorld 專案:
django-admin.py startproject HelloWorld
建立完成後我們可以檢視下專案的目錄結構:
$ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- asgi.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py
目錄說明:
接下來我們進入 HelloWorld 目錄輸入以下命令,啟動伺服器:
manage.py runserver 0.0.0.0:8000
0.0.0.0 讓其它電腦可連線到開發伺服器,8000 為埠號。如果不說明,那麼埠號預設為 8000。
在瀏覽器輸入你伺服器的 ip(這裡我們輸入本機 IP 地址: 127.0.0.1:8000) 及埠號,如果正常啟動,輸出結果如下:
在先前建立的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 views.py 檔案,並輸入程式碼:
from django.http import HttpResponse #需要匯入HttpResponse模組 def hello(request): # 定義Hello函數。request引數必須有,名字類似self的預設規則,可以修改,它封裝了使用者請求的所有內容 return HttpResponse("Hello world ! ") #不能直接字串,必須是由這個類封裝,此為Django規則
接著,繫結 URL 與檢視函數。開啟 urls.py 檔案,刪除原來程式碼,將以下程式碼複製貼上到 urls.py 檔案中:
from django.contrib import admin from django.urls import path from django.conf.urls import url from mytest import views # 首先需要匯入對應APP的views urlpatterns = [ path('admin/', admin.site.urls), # admin後臺路由 url(r'^$', views.hello), # 你定義的路由,第一個引數為引號中的正規表示式,第二個引數業務邏輯函數(當前為views中的hello函數) ]
整個目錄結構如下:
$ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 設定 | |-- urls.pyc | |-- views.py # 新增的檢視檔案 | |-- views.pyc # 編譯後的檢視檔案 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py
完成後,啟動 Django 開發伺服器,並在瀏覽器存取開啟瀏覽器並存取:
我們也可以修改以下規則:
from django.urls import path from . import views urlpatterns = [ path('hello/', views.hello), ]
通過瀏覽器開啟 http://127.0.0.1:8000/hello,輸出結果如下:
注意:專案中如果程式碼有改動,伺服器會自動監測程式碼的改動並自動重新載入,所以如果你已經啟動了伺服器則不需手動重啟。
Django path() 可以接收四個引數,分別是兩個必選引數:route、view 和兩個可選引數:kwargs、name。
語法格式:
path(route, view, kwargs=None, name=None)
如果是 Django >= 2.0 的版本,path() 函數無法匹配正規表示式,需要使用 re_path() 即可匹配正規表示式:
from django.urls import re_path from . import view urlpatterns = [ re_path(r'^hello$',view.hello), ]
PyCharm是一種Python IDE,帶有一整套可以幫助使用者在使用Python語言開發時提高其效率的工具,比如偵錯、語法高亮、Project管理、程式碼跳轉、智慧提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高階功能,以用於支援Django框架下的專業Web開發。剛玩Python或Django的朋友,如果沒有自己熟悉的IDE,建議直接使用這個。PyCharm可跨平臺,支援市面流行的作業系統。
下面,我教大家使用pycharm建立自己的第一個django專案。
介面講解:
點選建立之後,PyCharm自動幫我們建立一個虛擬環境和安裝最新版的Django。
安裝成功之後,我們剛才指定的目錄下就多出一個untiltled4資料夾。開啟untiltled4資料夾。
這就是Django的目錄結構,其中
templates資料夾是存放模板檔案的,
untiltled4資料夾放的是Django的一些組態檔。
manage.py檔案則是對django-admin.py的簡單包裝的一個檔案,通過它能執行一些簡單的命令。
venv資料夾就是virtualenv虛擬環境目錄,venv資料夾不是django原始碼裡的東西,只是我們建立虛擬環境時指定到這個目錄下了而已。
我們在建立Django專案的時候,也可以不用在More Settings裡建立APP和指定templates資料夾。
我們可以手動通方法建立。
點選PyCharm下方的Terminal,看下圖:
注意命令列前面的 (venv)出現這個,表示我們是在virtualenv虛擬環境下操作,如果沒有,或者虛擬環境名和我們建立的名稱不一致,說明PyCharm設定錯誤,我們輸入任何命令對剛才我們建立的專案來說是無效的。
我們通過命令列,進入我們的專案目錄,然後輸入
python manage.py startapp mytest
建立一個叫 mytest的APP。
或者從主選單中,選擇“工具”執行manage.py task,在Django控制檯對話方塊中,鍵入startapp startapp mytest
.
回車之後我們就能看到,我們的專案目錄裡多出一個mytest資料夾。
關於更多的一些Django常用的命令,大家可以看看這篇文章:Django常用命令
在Terminal下輸入下面的命令,生成和同步資料庫。
python manage.py makemigrations python manage.py migrate
點選“執行”按鈕
專案啟動成功,然後我們通過瀏覽器存取http://127.0.0.1:8080/
這樣,我們的第一個Django專案就建立完成了。
修改views檔案:
from django.shortcuts import render def hello(request): # return HttpResponse("Hello world ! ") context = {'hello': 'Hello World!'} return render(request, 'hello.html', context) # 將繫結的資料傳入前臺
為了讓django知道html檔案在哪裡,需要修改settings檔案的相應內容。預設情況下,正好適用,無需修改。
被繼承的模板base.html:
{#base.html#} <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>模板測試</title> </head> <body> <h1>{{ hello }}</h1> <p>Django模板測試</p> {% block mainbody %} <p>original</p> {% endblock %} </body> </html>
hello.html 中繼承 base.html,並替換特定 block,hello.html 修改後的程式碼如下:
{#hello.html#} {% extends "base.html" %} {% block mainbody %} <p>繼承了 base.html 檔案</p> {% endblock %}
重新整理網頁,輸出結果如下:
需要將一些靜態資源引入專案,新建一個static目錄,可以將js、css、圖片等檔案放入這個目錄中:
需要讓Django找到這個目錄,需要在setting檔案中進行設定:
STATICFILES_DIRS=
在html檔案中引入靜態資源:
{% load static %} {#base.html#} <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="{% static 'css/mypage.css' %}" rel="external nofollow" > <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <title>模板測試</title> </head> <body> <h1>{{ hello }}</h1> <p>Django模板測試</p> {% block mainbody %} <p>original</p> {% endblock %} </body> </html>
第一行引入靜態檔案路徑{% load staticfiles %},在<head>...</head>里加入CSS網鏈和js檔案
到此這篇關於使用Django框架建立專案的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45