欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

簡化Python的Django框架代碼的一些示例

系統 2077 0

盡管Django的流行和普及, 一些開發者仍然認為她是一個過時的web開發框架, 僅僅適合內容豐富的web程序。 然而現在大多數web程序往往不是富內容的, 這似乎讓Django看起來不是最佳選擇的web框架。

那么讓我們花點時間從現在的web開發實踐中重新認識下她吧。

簡單清晰的Django

一個web框架主要是幫助web程序生成核心的架構, 以便在其他的項目中重用。 Django正是以此為基礎, 快速構建web程序。 Django的核心主要是WSGI程序, 通過處理HTTP請求并返回有意義的HTTP應答。 她提供了各種工具, 像生成URL路由, cookie的處理, 解析表單數據和上傳文件。

還有, Django為HTTP應答創建了動態的模板引擎。你可以立馬使用, 為了豐富web程序構建體驗, 她提供了很多的各種各樣的過濾器和標簽, 去創建動態的可擴展模板。


通過這些工具, 你能輕松地在Django的項目中創建簡單清晰的微型框架。

我們知道有些人喜歡自己造輪子。 我們不是說貶低這種行為, 但是使用Django開發的話會讓我們有更少的干擾。 比如, 當你在糾結 Jinja2,, Mako, Genshi, Cheetah的時候, 你可能已經在使用Django已存在的模板引擎。 更少的糾結讓我們更多的享受愉快的開發過程。
?
培訓新的Django使用者

在Django和其他的web框架的社區中有一個很大的問題, 就是對新使用者的培訓問題。 就像有很多Django使用者是通過Django官網上的創建一個投票程序來學習Django的。 我們很多老道的Django開發者認為它是一個進入Django社區的“通過儀式”。 但是它是學習Django最好的方法嗎? 我覺得不是。

目前, 這個投票程序有六個部分。 雖然每個部分都有它的意義, 但是直到第三個你才能寫你的視圖和構造HTTP應答。 相比較簡單的“Hello World”程序在某些流行的python微型框架(像Flask和Bottle)的首頁而言, 這太遙遠了。 最好的學習方法是當我們學習Django的某一塊的時候沒有過多的阻礙, 并且能夠專注于處理請求和應答的交互上。 新使用者在構建常見的web任務的時候能從框架的其他部分中獲得幫助, 像回話管理, 用戶驗證和內置的admin接口。


那么, 按照我們的意思來構建一個簡化版的Django教程:
?

            
import sys
 
from django.conf import settings
from django.conf.urls import patterns
from django.http import HttpResponse
from django.core.management import execute_from_command_line
 
settings.configure(
  DEBUG=True,
  SECRET_KEY='placerandomsecretkeyhere',
  ROOT_URLCONF=sys.modules[__name__],
)
 
def index(request):
  return HttpResponse('Powered by Django')
 
urlpatterns = patterns('', 
  (r'^$', index),
)
 
if __name__ == "__main__":
  execute_from_command_line(sys.argv)

          

簡單吧。 這段簡短的代碼是運行Django項目所需要的全部。 讓我們開始逐步解釋下各部分代碼吧。

首先, 我們需要確保引入了HttpResponse, 并且返回我們希望返回的內容。
?

            
from django.http import HttpResponse
 
def index(request):
  return HttpResponse('Powered by Django')

          

一般來說, 這段代碼應該在view.py里面。 不過在這個簡化版的教程中, 我們把Django項目中所有代碼放在一個單一的文件。

應用的當前部分與下一部分的完美紐帶是鏈接結構。上面的代碼就期望這樣的一個url索引,所以我們需要為它創建一個。

            
from django.conf.urls import patterns
from django.http import HttpResponse
 
def index(request):
  return HttpResponse('Powered by Django')
 
urlpatterns = patterns('', 
  (r'^$', index),
)

          

僅僅通過以上7行代碼我們就為應用程序構建好了在Django上運行的基礎!現在,讓我們完成一些基本設置,使應用程序可以執行起來。

?

            
import sys
 
from django.conf import settings
from django.conf.urls import patterns
from django.http import HttpResponse
 
settings.configure(
  DEBUG=True,
  SECRET_KEY='placerandomsecretkeyhere',
  ROOT_URLCONF=sys.modules[__name__],
)
 
def index(request):
  return HttpResponse('Powered by Django')
 
urlpatterns = patterns('', 
  (r'^$', index),
)

          

你可能已經發現在上面的例子中,我們已經剝離了那些設置,并且尤其是省略了數據庫的配置。這些設置將可以作為一個針對新用戶進入的門檻,當這些新用戶試圖確定使用什么數據庫時,可能避免出現混亂的情況。當開發一個項目時,我們希望確保自己的工作專注于特定部分,從而降低工作中的阻礙。
?

注意:在settings.configure文件里設置隨機的 SECRET_KEY以便保護session and cross-site request forgery (CSRF).

由于沒有使用 start project命令生成該結構,我們會丟掉manage.pyfile文件.因此需要手工添加相關的manage.pyand信息:
?

            
import sys
 
from django.conf import settings
from django.conf.urls import patterns
from django.http import HttpResponse
from django.core.management import execute_from_command_line
 
settings.configure(
  DEBUG=True,
  SECRET_KEY='placerandomsecretkeyhere',
  ROOT_URLCONF=sys.modules[__name__],
)
 
def index(request):
  return HttpResponse('Powered by Django')
 
urlpatterns = patterns('', 
  (r'^$', index),
)
 
if __name__ == "__main__":
  execute_from_command_line(sys.argv)

          

現在可以從命令行啟動應用了:
?

            
$ python project_name.py runserver

          

訪問 127.0.0.1:8000, 會看到? “Powered by Django”頁面了!

簡化Python的Django框架代碼的一些示例_第1張圖片

看到這里, 你可能要問: “模型和視圖在哪呢?”。 在此之前讓我們先放松一下。 讓我們討論下Django到底是什么--她是一個包含一系列我們經常需要用到的工具的web框架, 并且你能很容易在項目中引用它們。 接下來我們將介紹如何引入這些工具。 構建一個模板就是個不錯的列子。 讓我們開始動手吧。

添加模板文件前我們要添加urls和一些必要設置, 要讓Django知道模板文件放在哪。 把這些設置添加到文件里吧。
?

            
import os
import sys
 
BASE_PATH = os.path.dirname(__file__)
 
from django.conf import settings
from django.conf.urls import patterns, url
from django.core.management import execute_from_command_line
from django.shortcuts import render
 
settings.configure(
  DEBUG=True,
  SECRET_KEY='placerandomsecretkeyhere',
  ROOT_URLCONF=sys.modules[__name__],
  TEMPLATE_DIRS=(
    os.path.join(BASE_PATH, 'templates'),
  ),
)
 
def index(request):
  return render(request, 'index.html', {'request': request})
 
urlpatterns = patterns('', 
  url(r'^$', index, name='index'),
)
 
if __name__ == "__main__":
  execute_from_command_line(sys.argv)

          

?

你會注意到在頂部我們增加了os.path Python模塊的導入。通過這樣做,我們已經為新用戶創建了一種容易的方式指向他們的項目文件夾。現在我們能在我們的TEMPLATE_DIRS設置中輕松的添加指向模板的路徑,并開始體驗Django的內置標簽和過濾器的優勢!

正如你可以看到,通過將創建一個Django應用程序的基礎部分分解成較小的部分,我們可以創建一個更簡單的方法給內建的新用戶。我們需要重新學習怎樣讓Django在沒有ORM和Django管理的時候創建Django應用程序。需要認識到Django的那些內置功能他們真是的是什么。在使用框架時他們不是必須的,如果你感覺他們不是必須的,你并沒有失去太多。我們開始使用Django好的部分而不是感覺它的重量,就像我們學習Python的標準庫。讓我們開始移去過時的東西,看看它的源碼,功能真的是很豐富。

因此,基于所有的這些,在輕量的模式中你正在考慮構建一些能夠開發什么的應用程序?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品国产三级国产专区5o | 欧美激情啪啪 | 欧美日韩在线影院 | 欧美激情 亚洲 | 亚洲综合亚洲国产尤物 | 一级做a爰片久久毛片人呢 达达兔午夜起神影院在线观看麻烦 | 欧美日韩精品久久久免费观看 | 暖暖av | 神马九九 | 91在线视频观看 | 亚洲在线资源 | 成人午夜电影在线播放网站 | 伊人成人在线观看 | 亚洲欧美天堂综合久久 | 羞羞的视频在线 | 国产目拍亚洲精品99久久精品 | 99热久久这里只有精品6国产网 | www.欧美.com | 欧美精彩视频 | 精品伊人久久久99热这里只 | 精品一区二区久久久久久久网站 | 啪啪免费网站入口链接 | 视频一区二区中文字幕 | 奇米第四色在线 | 国产福利精品在线观看 | 国产高清视频在线观看 | 久久夜夜操妹子 | 欧美三极| 日韩在线1| 国产激情网站 | 国产99999| 久久99精品久久 | 国产亚洲第一伦理第一区 | 91天堂网| 色免费在线 | 最新日本中文字幕在线观看 | 免费观看的av | 亚洲欧美日韩综合二区三区 | 91国视频在线 | 中文字幕在线观看视频一区 | 日本在线免费观看 |