日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django的第一步(第一节)

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django的第一步(第一节) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫下你的第一個Django應用


第一部分

????讓我們通過例子來學習.

????在本教程中,我們將引導您完成基本投票應用程序的創建.

????其中包括兩部分:

  • 一個讓人們查看民意調查并投票的公共網站.
  • 允許您添加,更改和刪除民意調查的管理網站.

????我們假設你django已經安裝好了,你可以通過下面的shell命令得知django的版本:

python -m django --version

????如果django已經安裝好了,你可以看到安裝的版本.如果沒有,你會得到錯誤提示"No module named django".

????這個教程基于django2.0,支持python3.4以及后面的版本.如果django的版本不匹配,可以在右下角選擇合適的版本,或者升級django版本.如果你正在使用老版本的python,你可以根據下圖去找到合適的點擊django版本.



創建一個項目

????如果這是你第一次使用django,你會關心一些初始化設置.換句話說,你需要下面的指令自動生成一個django項目,其中包含數據庫配置,django特定的選項和應用特定的選項.

????從命令行,cd進入你想創建django項目的文件夾,然后執行下面的指令:????

django-admin startproject mysite

????這條命令將會在你的文件夾中創建一個mysite文件夾.

注釋:

? ? 你需要避免在創建django項目與python或django內置組件相同,尤其是,你應該避免使用django(與django本身發生沖突)或者test(與python內置文件沖突).

代碼應該放置在哪?

????如果你的背景是普通的舊PHP(沒有使用現代框架),那么你可能習慣于把代碼放在Web服務器的文檔根目錄下(比如/ var / www).用Django,你不這樣做.將任何Python代碼放入Web服務器的文檔根目錄中并不是一個好主意,因為它有可能讓人們能夠通過Web查看您的代碼.這樣安全性不好.? ??

????將代碼放在文檔根目錄之外的某個目錄中,例如/ home / mycode.

讓我們看看startproject這個指令都創建了什么:

mysite/manage.pymysite/__init__.pysettings.pyurls.pywsgi.py下面解釋這些文件:
  • 外部的mysite/是你項目的容器.它的名字不影響django;你可以隨你喜歡地修改名字
  • manage.py:一個代碼管理工具,可以讓你用各種方式與django進行交互.你可以讀到關于manage.py的所有功能在django-admin and manage.py
  • 內部的mysite/是你django項目的實際文件夾.它的名字是你需要用來導入任何內容的Python包名(例如:mysite.urls)
  • mysite/__init__.py:一個空的文件用來告訴python,這個文件夾是一個python包.如果你是一個python初學者,建議你先了解一下python包的含義
  • mysite/setting.py:用于配置django的設置.通過django settings可以了解到settings的工作方式
  • mysite/urls.py:django項目的url管理器,可以設置你django項目可以訪問的網頁url.通過URL dispatcher可以了解更多關于URLS
  • mysite/wsgi.py:WSGI兼容的Web服務器為您的項目提供服務的入口點

---------------------------------------------------------------------------------------------------------------------

開發服務器

? ? 讓我們檢驗我的django項目.進入外部mysite目錄,運行下面的指令:

python manage.py runserver

? ? 你可以看到下面的命令行輸出? ??

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.April 11, 2018 - 19:22:09 Django version 2.0.4, using settings 'blogproject.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
注釋:

????現在請忽略數據庫遷移的問題,這個問題會在稍后進行處理.

? ? 你已經開始使用django開發服務器了,這是一個純粹用Python編寫的輕量級Web服務器.這些功能我們已經在django中包含了,所以你可以很快地進行開發,你可以直接進行開發,不需要去配置生產服務器,比如像Apache這樣的網頁服務器.

? ? 注意注意!不要在類似于生產環境的任何情況下使用此服務器。它僅用于開發時使用。 (我們的業務是制作Web框架,而不是Web服務器。)????

? ? 現在服務器正在運行,可以通過http://127.0.0.1:8000/來訪問你的網頁,你可以看到"The install worked successfully! Congratulations!",還有一個起飛的火箭,說明它正在工作.

切換端口:

? ? runserver這個命令默認會以8000作為端口號開啟服務器.

? ? 如果你想要改變服務器的端口號,將它作為命令的參數輸入.下面是個例子,這個命令開啟服務器在8080端口上:

python manager.py runserver 8080

? ? 你如果你想改變服務器的IP地址,將ip地址與端口號一起作為參數傳遞即可,如果出現錯誤,如下

Invalid HTTP_HOST header: '127.1.1.1:8080'. You may need to add '127.1.1.1' to ALLOWED_HOSTS.

? ? 說明你需要把該IP加入setting.py文件中ALLOWED_HOSTS中即可.

? ? 如果你想收聽所有可用的公共IP(如果你正在運行Vagrant或希望在網絡上的其他計算機上炫耀你的工作,這很有用),請使用:

python manage.py runserver 0:8000 00.0.0.0的簡稱.有關開發服務器的完整文檔可以在runserver參考中找到。

????

自動重新加載服務器:

? ??您無需重新啟動服務器以使代碼更改生效。但是,某些操作(如添加文件)不會觸發重新啟動,因此在這種情況下您必須重新啟動服務.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

創建一個Polls應用:

? ? 現在你的服務器環境已經搭建好了,你可以開始工作了.

? ? 你在django中編寫的每一個應用都遵循特定的python包.?django帶有一個實用的工具可以自動生成應用的基本目錄結構,所有你可以把注意力放在寫代碼上而不是創建文件目錄.

項目對比應用:

? ? 項目和應用的不用是什么呢?應用是網頁應用程序,它可以執行一些操作,比如公共記錄數據庫或者簡單的投票系統.項目是一個特定網頁配置和網頁應用程序的集合,一個項目可以包含多個應用,一個應用可以在多個項目中.

? ? 你的所有應用可以在你python路徑上的任何地方.在本教程中,我們會創建Poll應用與manage.py文件同一個路徑下,所以它可以被直接作為主模塊被調用,而不是作為mysite的子模塊.

? ? 創建你的應用,確認你已經進入了與manage.py同目錄下,然后執行下面的目錄:

python manage.py startapp polls

? ? 這個命令創建了polls文件夾,?其中目錄像下面這樣:

polls/__init__.pyadmin.pyapps.pymigrations/__init__.pymodels.pytests.pyviews.py? ? 這個文件夾將包含我們的投票系統應用.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

編寫你的第一個視圖:

? ? 讓我們編寫第一個視圖.打開polls/views.py這個文件然后將下面的python代碼寫入:

polls/views.py中? ?? ??

from django.http import HttpResponsedef index(request):return HttpResponse("Hello, world. You're at the polls index.")

? ? 這是可能是django中最簡單的視圖了.要調用這個視圖,我們需要將它映射到一個URL - 為此我們需要一個URLconf.

? ? 需要創建一個URLconf在polls文件夾中.創建一個文件叫做urls.py.你的文件夾現在應該是這樣:

polls/__init__.pyadmin.pyapps.pymigrations/__init__.pymodels.pytests.pyurls.pyviews.py

? ? 在polls/urls.py文件中加入下面的代碼:

polls/urls.py文件中

from django.urls import pathfrom . import viewsurlpatterns = [path('',views.index, name='index'), ]

? ? 下一步是將根的URLconf指向polls.urls模塊.在mysite/urls.py添加導入django.urls.include然后在urlpatterns列表中添加一個include(),以便導入polls.urls模塊:

mysite/urls.py文件中

from django.contrib import admin from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('polls/',include('polls.urls')), ]

????include()函數允許訪問其他的URLconf.任何時候django碰到include()函數,它會暫停在這個URL在當前URLconf中的匹配,轉而進入include函數中的URLconfs中找尋匹配.

? ? include()函數的主要想法是讓引用URLs更加方便.因為投票是在自己的URLconf中(polls/urls.py),他們可以被放置在"/polls/"之下,或者"/fun_polls/"之下,或者"/content/polls/"之下,或者其他根目錄之下,這個應用都可以工作.

什么時候使用include()函數?
? ? 你應該總是使用include()函數當你要添加其他URL模型時.admin.site.urls 是唯一一個不可以使用的例外.

? ? 你現在已經將一個視圖連接到URLconf了,現在驗證它是否工作,運行下面的指令:

python manage.py runserver

? ? 通過瀏覽器訪問http://localhost:8000/polls/,然后你應該可以看到"Hello, world. You’re at the polls index.",這些是你在index中寫下的.

? ? path()函數會傳遞四個參數,其中兩個是必須的:路徑(route)視圖(view),兩個可以可選屬性:kwargs名字(name).我們需要回顧一下這四個參數.

路徑(route)

路徑是一個字符串,包含了URL模型.處理請求時,django從urlpattens第一個URL開始往下,匹配請求的URL,直到找到一個匹配的URL.

視圖(view)

當django找到匹配的URL模式,它將HttpRequest對象作為第一個參數并將路由中的任何“捕獲”值作為關鍵字參數調用指定的視圖函數.我們將稍微舉一個例子.

kwargs
關鍵字參數可以在字典中傳遞給目標視圖,我們不打算在教程中使用Django的這個特性。

名字(name)

命名你的URL可以讓你從django其他地方明確地引用它,特別是在模板中.這個強大的功能允許你只在單個文件中對項目的URL模式進行全局修改.

如果你對基本請求和響應流程這一節感到滿意,請閱讀本教程的第2節以開始使用數據庫。








轉載于:https://www.cnblogs.com/GF66/p/9785489.html

總結

以上是生活随笔為你收集整理的Django的第一步(第一节)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。