亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2015年04月20日 09:44:13   投稿:goldensun  
這篇文章主要介紹了簡化Python的Django框架代碼的一些示例,實際上文中只是抽取了一些Django中最基本的功能用于簡化入門者的上手復雜度,下,需要的朋友可以參考下

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

那么讓我們花點時間從現(xiàn)在的web開發(fā)實踐中重新認識下她吧。

簡單清晰的Django

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

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


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

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

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

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

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

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

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

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上運行的基礎!現(xiàn)在,讓我們完成一些基本設置,使應用程序可以執(zhí)行起來。

 

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),
)

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

注意:在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)

現(xiàn)在可以從命令行啟動應用了:
 

$ python project_name.py runserver

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

201542094108299.png (626×403)

看到這里, 你可能要問: “模型和視圖在哪呢?”。 在此之前讓我們先放松一下。 讓我們討論下Django到底是什么--她是一個包含一系列我們經(jīng)常需要用到的工具的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模塊的導入。通過這樣做,我們已經(jīng)為新用戶創(chuàng)建了一種容易的方式指向他們的項目文件夾。現(xiàn)在我們能在我們的TEMPLATE_DIRS設置中輕松的添加指向模板的路徑,并開始體驗Django的內(nèi)置標簽和過濾器的優(yōu)勢!

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

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

相關文章

  • Python進程通信之匿名管道實例講解

    Python進程通信之匿名管道實例講解

    這篇文章主要介紹了Python進程通信之匿名管道實例講解,本文直接給出代碼實例,代碼中包含詳細注釋,需要的朋友可以參考下
    2015-04-04
  • Python編寫單元測試代碼實例

    Python編寫單元測試代碼實例

    這篇文章主要介紹了Python編寫單元測試代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 解決pycharm運行出錯,代碼正確結果不顯示的問題

    解決pycharm運行出錯,代碼正確結果不顯示的問題

    今天小編就為大家分享一篇解決pycharm運行出錯,代碼正確結果不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python將DataFrame的某一列作為index的方法

    Python將DataFrame的某一列作為index的方法

    下面小編就為大家分享一篇Python將DataFrame的某一列作為index的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django教程筆記之中間件middleware詳解

    Django教程筆記之中間件middleware詳解

    Django 中的中間件(middleware),是一個鑲嵌到Django的request/response處理機制中的一個hooks框架,是一個修改django全局輸入輸出的一個底層插件系統(tǒng)。這篇文章主要給大家介紹了關于Django教程筆記之中間件middleware的相關資料,需要的朋友可以參考下
    2018-08-08
  • 輕松實現(xiàn)python搭建微信公眾平臺

    輕松實現(xiàn)python搭建微信公眾平臺

    這篇文章主要介紹了python搭建微信公眾平臺的相關資料和技巧,文中給出了詳細的python搭建微信公眾平臺的步驟,感興趣的朋友可以參考一下
    2016-02-02
  • 使用Python快速實現(xiàn)文件共享并通過內(nèi)網(wǎng)穿透技術公網(wǎng)訪問

    使用Python快速實現(xiàn)文件共享并通過內(nèi)網(wǎng)穿透技術公網(wǎng)訪問

    數(shù)據(jù)共享作為和連接作為互聯(lián)網(wǎng)的基礎應用,不僅在商業(yè)和辦公場景有廣泛的應用,對于個人用戶也有很強的實用意義,今天,筆者就為大家介紹,如何使用python這樣的簡單程序語言,在自己的電腦上搭建一個共享文件服務器,需要的朋友可以參考下
    2023-10-10
  • Python進度條tqdm的用法詳解

    Python進度條tqdm的用法詳解

    這篇文章主要介紹了Python進度條tqdm的用法,這對于第三方庫非常豐富的Python來說,想要實現(xiàn)這一功能并不是什么難事,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2021-08-08
  • Python實戰(zhàn)之實現(xiàn)康威生命游戲

    Python實戰(zhàn)之實現(xiàn)康威生命游戲

    這篇文章主要介紹了Python實戰(zhàn)之實現(xiàn)康威生命游戲,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 詳解Python結合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗證

    詳解Python結合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗證

    很多網(wǎng)站在登錄或者注冊時都會遇到拼圖驗證碼,這種拼圖驗證碼實際上是多個小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個基于Python?Genetic?Algorithm的破解拼圖驗證碼的辦法,需要的可以參考一下
    2022-02-02

最新評論