pythondjango网页开发_Python-Web开发 Django 简介
Python 另一個 Web 開發框架 Django,它是一個基于 Python 定制的開源 Web 應用框架,最早源于一個在線新聞 Web 網站,后于2005年開源。
Django 框架
Django 采用了 MVC (即模型M,視圖V和控制器C)構造的 Web 框架,但由于控制器接受用戶輸入的部分由框架自行處理,所以使用 Django 開發中里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV 模式。
Django 的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便的以“插件”形式服務于整個框架,
Django 有許多功能強大的第三方“插件”,你甚至可以很方便的開發出自己的工具包,這使得 Django 具有很強的可擴展性。它還強調快速開發和 DRY(Do Not Repeat Yourself) 原則。
安裝 Django 庫
同其他模塊一樣,Django 的安裝也非常簡單,下面通過 pip3 包管理器來安裝
pip3 install django
安裝 Django 之后就可以使用管理工具?django-admin,可以用來創建項目,創建應用,啟動服務等操作命令。
$ django-admin
cleanup-- remove old data fromthe database
compilemessages-- compile .po files to .mo foruse with gettext
createcachetable-- creates table forSQL cache backend
createsuperuser--create a superuser
dbshell-- run command-line client forthe current database
diffsettings-- display differences between the current settings andDjango defaults
dumpdata--output contents of database as a fixture
flush-- execute 'sqlflush'on the current database
inspectdb-- output Django model module for tables indatabase
loaddata-- install the named fixture(s) inthe database
makemessages-- pull out all strings marked fortranslation
reset-- executes 'sqlreset' forthe given app(s)
runfcgi--run this project as a fastcgi
runserver-- start a lightweight web server fordevelopment
shell-- run a Python interactive interpreter. Tries to use IPython, if it's available
sql -- print the CREATE TABLE statements forthe given app(s)
sqlall-- print the CREATE TABLE, CREATE INDEX and custom statements forthe given app(s)
sqlclear-- print the DROP TABLE statements forthe given app(s)
sqlcustom-- print the custom table-modifying SQL statements forthe given app(s)
sqlflush-- print the SQL statements required to returnall tables to installation state
sqlindexes-- print the CREATE INDEX statements forthe given app(s)
sqlreset-- print the DROP TABLE and CREATE TABLE statements forthe given app(s)
sqlsequencereset-- print the SQL statements for resetting sequences forthe given app(s)
startapp-- create Django app directory in this project's directory
syncdb -- create database tables for apps inINSTALLED_APPS where required
test-- run the test suite for the specified app, orthe entire site
testserver-- run a development server with data fromthe given fixture(s)
validate-- validate all installed modules
創建一個項目
項目是 Django 實例的一系列設置的集合,它包括數據庫配置、Django 特定選項以及應用程序的特定設置。安裝成功后,接下來我們開始創建一個新項目?TestProject
$ django-admin startproject TestProject
$ cd TestProject
$.|____manage.py|____TestProject
| |______init__.py| |____settings.py| |____urls.py| |____wsgi.py
目錄說明:TestProject: 項目的容器。manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 項目進行交互。TestProject/init.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。TestProject/settings.py: 該 Django 項目的設置/配置。TestProject/urls.py: 該 Django 項目的 URL 聲明; 一份由 Django 驅動的網站"目錄"。TestProject/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。
啟動開發服務器
創建完項目后,其實就已經構成了一個可運行的 Django 網站。
Django 自帶了一個簡單的網絡服務器,在開發過程中非常方便,所以我們無需安裝任何其他軟件即可在本地運行項目。
$ python manage.py runserver 127.0.0.1:8080Watchingforfile changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have17 unapplied migration(s). Your project may not work properly until you apply the migrations forapp(s): admin, auth, contenttypes, sessions.
Run'python manage.py migrate'to apply them.
September27, 2019 - 10:54:32Django version2.2.5, using settings 'testweb.settings'Starting development server at http://127.0.0.1:8080/Quit the server with CONTROL-C.
如上所示服務啟動完成。django 開發服務是可用在開發期間的,一個內建的,輕量的web服務。它提供了一個在網站開發階段實時監測你的代碼修改并加載到它們,你能直接看到修改結果而不需要重啟服務。
127.0.0.1:表示可連接到服務器的IP地址 8080:端口號(如果不指定,端口號默認為 8000)
然后在瀏覽器輸入服務器的IP及端口號(這里我們輸入本機 IP 地址:127.0.0.1:8080) ,如果正常啟動,輸出結果如下:
注意:開發服務器在需要的情況下會對每一次的訪問請求重新載入一遍 Python 代碼。所以你不需要為了讓修改的代碼生效而頻繁的重新啟動服務器。然而,一些動作,比如添加新文件,將不會觸發自動重新加載,這時你得自己手動重啟服務器。
配置開發服務器
jango 是一個支持國際化和本地化的框架,因此剛才我們看到的默認首頁也是支持國際化的,我們將默認語言修改為中文,時區設置為東八區,配置如下:
$ vi TestProject/settings.py#省略上下文#設置語言代碼
LANGUAGE_CODE = 'zh-hans'
#設置時區
TIME_ZONE = 'Asia/Chongqing'
然后刷新剛才的頁面,頁面會變為中文顯示,如下圖所示:
創建一個應用
創建完項目,就可以在項目創建應用了,每一個應用都是一個 Python 包,并且遵循著相同的約定。Django 自帶一個工具,可以幫你生成應用的基礎目錄結構,這樣你就能專心寫代碼,而不是創建目錄了。
項目 VS 應用?項目和應用有啥區別?
應用是一個專門做某件事的網絡應用程序——比如博客系統,或者公共記錄的數據庫,或者簡單的投票程序。
項目則是一個網站使用的配置和應用的集合。
項目可以包含很多個應用,應用可以被很多個項目使用。
你的應用可以存放在任何?Python?path?中定義的路徑。在這個教程中,我們將在你的?manage.py?同級目錄下創建投票應用。這樣它就可以作為頂級模塊導入,而不是?mysite?的子模塊。請確定你現在處于?manage.py?所在的目錄下,然后運行這行命令來創建一個應用:
$ python manage.py startapp polls
$ tree#列出當前目錄結構
.|____db.sqlite3|____manage.py|____polls
| |______init__.py| |____admin.py| |____apps.py| |____migrations
| | |______init__.py| |____models.py| |____tests.py| |____views.py|____TestProject
| |______init__.py| |______pycache__
| | |______init__.cpython-37.pyc| | |____settings.cpython-37.pyc| | |____urls.cpython-37.pyc| | |____wsgi.cpython-37.pyc| |____settings.py| |____urls.py| |____wsgi.py
然后我們就可以編輯polls應用中的views.py視圖,操作如下:
$ vim polls/views.pyfrom django.http importHttpResponsedefindex(request):return HttpResponse("你好,這是一個投票頁面。")
保存后退出,這樣一個簡單的視圖就做好了,接下來需要給它加一個指向這個視圖的路由。首先我們需要在polls應用下新建?urls.py?的文件,操作如下:
$ vim polls/urls.pyfrom django.urls importpathfrom . importviews
urlpatterns=[
path('', views.index, name='index'),
]
保存后退出,然后還需要修改TestProject?目錄下的?urls.py,增加?polls?的路由映射配置,如下:
$ vim TestProject/urls.pyfrom django.contrib importadminfrom django.urls importpath, include
urlpatterns=[
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
函數?include()?允許引用其它?URLconfs。每當 Django 遇到?include()?時,它會截斷與此項匹配的 URL 的部分,并將剩余的字符串發送到?URLconf?以供進一步處理。Django設計?include()?的理念是使其可以即插即用,當包括其它 URL 模式時你應該總是使用?include(),?admin.site.urls?是唯一例外。
保存后退出,然后我們再訪問網址 http://localhost:8080/polls/, 就能訪問到我們新創建的頁面了,如下圖:
本文通過上面幾步操作,就可以快速創建一個可訪問的網站,是不是覺得用 Django 開發網站原來這么簡單方便。Django還有模板,表單,路由,認證,基本的數據庫管理等等內建功能,接下來將進一步的介紹 Django 的高級功能。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的pythondjango网页开发_Python-Web开发 Django 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA ulimit,java-从li
- 下一篇: 希捷银河声音大_【推仔说新闻】那款硬盘它