使用Django框架創(chuàng)建項目
本章我們將介紹Django 管理工具及如何使用 Django 來創(chuàng)建項目,第一個項目我們以 HelloWorld 來命令項目。
一、Django 管理工具
安裝 Django 之后,您現(xiàn)在應該已經(jīng)有了可用的管理工具 django-admin.py。我們可以使用 django-admin.py 來創(chuàng)建一個項目:
我們可以來看下django-admin 的命令介紹:
$ django-admin.py
二、創(chuàng)建第一個項目
使用 django-admin.py 來創(chuàng)建 HelloWorld 項目:
django-admin.py startproject HelloWorld
創(chuàng)建完成后我們可以查看下項目的目錄結構:
$ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- asgi.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py
目錄說明:
- HelloWorld: 項目的容器。
- manage.py: 一個實用的命令行工具,Django管理主文件。
- HelloWorld/__init__.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。
- HelloWorld/asgi.py: 一個 ASGI 兼容的 Web 服務器的入口,以便運行你的項目。
- HelloWorld/settings.py: 項目的設置/配置文件。
- HelloWorld/urls.py: 項目的URL路由文件; 一份由 Django 驅(qū)動的網(wǎng)站"目錄"。
- HelloWorld/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。
接下來我們進入 HelloWorld 目錄輸入以下命令,啟動服務器:
manage.py runserver 0.0.0.0:8000
0.0.0.0 讓其它電腦可連接到開發(fā)服務器,8000 為端口號。如果不說明,那么端口號默認為 8000。
在瀏覽器輸入你服務器的 ip(這里我們輸入本機 IP 地址: 127.0.0.1:8000) 及端口號,如果正常啟動,輸出結果如下:
三、視圖和 URL 配置
在先前創(chuàng)建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 views.py 文件,并輸入代碼:
from django.http import HttpResponse #需要導入HttpResponse模塊 def hello(request): # 定義Hello函數(shù)。request參數(shù)必須有,名字類似self的默認規(guī)則,可以修改,它封裝了用戶請求的所有內(nèi)容 return HttpResponse("Hello world ! ") #不能直接字符串,必須是由這個類封裝,此為Django規(guī)則
接著,綁定 URL 與視圖函數(shù)。打開 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), # 你定義的路由,第一個參數(shù)為引號中的正則表達式,第二個參數(shù)業(yè)務邏輯函數(shù)(當前為views中的hello函數(shù)) ]
整個目錄結構如下:
$ 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 開發(fā)服務器,并在瀏覽器訪問打開瀏覽器并訪問:
我們也可以修改以下規(guī)則:
from django.urls import path from . import views urlpatterns = [ path('hello/', views.hello), ]
通過瀏覽器打開 http://127.0.0.1:8000/hello,輸出結果如下:
注意:項目中如果代碼有改動,服務器會自動監(jiān)測代碼的改動并自動重新載入,所以如果你已經(jīng)啟動了服務器則不需手動重啟。
四、path() 函數(shù)
Django path() 可以接收四個參數(shù),分別是兩個必選參數(shù):route、view 和兩個可選參數(shù):kwargs、name。
語法格式:
path(route, view, kwargs=None, name=None)
- route: 字符串,表示 URL 規(guī)則,與之匹配的 URL 會執(zhí)行對應的第二個參數(shù) view。
- view: 用于執(zhí)行與正則表達式匹配的 URL 請求。
- kwargs: 視圖使用的字典類型的參數(shù)。
- name: 用來反向獲取 URL。
如果是 Django >= 2.0 的版本,path() 函數(shù)無法匹配正則表達式,需要使用 re_path() 即可匹配正則表達式:
from django.urls import re_path from . import view urlpatterns = [ re_path(r'^hello$',view.hello), ]
五、使用PyCharm創(chuàng)建Django項目
PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。剛玩Python或Django的朋友,如果沒有自己熟悉的IDE,建議直接使用這個。PyCharm可跨平臺,支持市面流行的操作系統(tǒng)。
下面,我教大家使用pycharm創(chuàng)建自己的第一個django項目。
1、打開PyCharm,新建項目
界面講解:
點擊創(chuàng)建之后,PyCharm自動幫我們創(chuàng)建一個虛擬環(huán)境和安裝最新版的Django。
安裝成功之后,我們剛才指定的目錄下就多出一個untiltled4文件夾。打開untiltled4文件夾。
這就是Django的目錄結構,其中
templates文件夾是存放模板文件的,
untiltled4文件夾放的是Django的一些配置文件。
manage.py文件則是對django-admin.py的簡單包裝的一個文件,通過它能運行一些簡單的命令。
venv文件夾就是virtualenv虛擬環(huán)境目錄,venv文件夾不是django源碼里的東西,只是我們創(chuàng)建虛擬環(huán)境時指定到這個目錄下了而已。
我們在創(chuàng)建Django項目的時候,也可以不用在More Settings里創(chuàng)建APP和指定templates文件夾。
我們可以手動通方法創(chuàng)建。
2、通過命令行,添加新的APP。
點擊PyCharm下方的Terminal,看下圖:
注意命令行前面的 (venv)出現(xiàn)這個,表示我們是在virtualenv虛擬環(huán)境下操作,如果沒有,或者虛擬環(huán)境名和我們創(chuàng)建的名稱不一致,說明PyCharm配置錯誤,我們輸入任何命令對剛才我們創(chuàng)建的項目來說是無效的。
我們通過命令行,進入我們的項目目錄,然后輸入
python manage.py startapp mytest
創(chuàng)建一個叫 mytest的APP。
或者從主菜單中,選擇“工具”運行manage.py task,在Django控制臺對話框中,鍵入startapp startapp mytest
.
回車之后我們就能看到,我們的項目目錄里多出一個mytest文件夾。
關于更多的一些Django常用的命令,大家可以看看這篇文章:Django常用命令
3、遷移數(shù)據(jù)庫。
在Terminal下輸入下面的命令,生成和同步數(shù)據(jù)庫。
python manage.py makemigrations python manage.py migrate
4、啟動Django項目
點擊“運行”按鈕
項目啟動成功,然后我們通過瀏覽器訪問http://127.0.0.1:8080/
這樣,我們的第一個Django項目就創(chuàng)建完成了。
5、Django模板
修改views文件:
from django.shortcuts import render def hello(request): # return HttpResponse("Hello world ! ") context = {'hello': 'Hello World!'} return render(request, 'hello.html', context) # 將綁定的數(shù)據(jù)傳入前臺
為了讓django知道html文件在哪里,需要修改settings文件的相應內(nèi)容。默認情況下,正好適用,無需修改。
被繼承的模板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 %}
刷新網(wǎng)頁,輸出結果如下:
6、引入靜態(tài)文件
需要將一些靜態(tài)資源引入項目,新建一個static目錄,可以將js、css、圖片等文件放入這個目錄中:
需要讓Django找到這個目錄,需要在setting文件中進行配置:
STATICFILES_DIRS=
在html文件中引入靜態(tài)資源:
{% 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>
第一行引入靜態(tài)文件路徑{% load staticfiles %},在<head>...</head>里加入CSS網(wǎng)鏈和js文件
到此這篇關于使用Django框架創(chuàng)建項目的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在Mac OS上使用mod_wsgi連接Python與Apache服務器
這篇文章主要介紹了在Mac OS上使用mod_wsgi連接Python與Apache服務器的方法,同時文中還介紹了使用Python的Django框架時mod_wsgi連接方式下可能遇到的問題的一般解決方法,需要的朋友可以參考下2015-12-12Python實現(xiàn)批量識別圖片文字并存為Excel
批量文字識別是Python辦公自動化的基本操作,應用在我們工作生活中的方方面面。本文主要以開源免費的easyocr來實現(xiàn)批量識別圖片文字并存為Excel,感興趣的可以學習一下2022-06-06