欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)化Python的Django框架代碼的一些示例

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

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

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

簡(jiǎn)單清晰的Django

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

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


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

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

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

目前, 這個(gè)投票程序有六個(gè)部分。 雖然每個(gè)部分都有它的意義, 但是直到第三個(gè)你才能寫你的視圖和構(gòu)造HTTP應(yīng)答。 相比較簡(jiǎn)單的“Hello World”程序在某些流行的python微型框架(像Flask和Bottle)的首頁(yè)而言, 這太遙遠(yuǎn)了。 最好的學(xué)習(xí)方法是當(dāng)我們學(xué)習(xí)Django的某一塊的時(shí)候沒有過(guò)多的阻礙, 并且能夠?qū)W⒂谔幚碚?qǐng)求和應(yīng)答的交互上。 新使用者在構(gòu)建常見的web任務(wù)的時(shí)候能從框架的其他部分中獲得幫助, 像回話管理, 用戶驗(yàn)證和內(nèi)置的admin接口。


那么, 按照我們的意思來(lái)構(gòu)建一個(gè)簡(jiǎn)化版的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)

簡(jiǎn)單吧。 這段簡(jiǎn)短的代碼是運(yùn)行Django項(xiàng)目所需要的全部。 讓我們開始逐步解釋下各部分代碼吧。

首先, 我們需要確保引入了HttpResponse, 并且返回我們希望返回的內(nèi)容。
 

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

一般來(lái)說(shuō), 這段代碼應(yīng)該在view.py里面。 不過(guò)在這個(gè)簡(jiǎn)化版的教程中, 我們把Django項(xiàng)目中所有代碼放在一個(gè)單一的文件。

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

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

僅僅通過(guò)以上7行代碼我們就為應(yīng)用程序構(gòu)建好了在Django上運(yùn)行的基礎(chǔ)!現(xiàn)在,讓我們完成一些基本設(shè)置,使應(yīng)用程序可以執(zhí)行起來(lái)。

 

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è)置,并且尤其是省略了數(shù)據(jù)庫(kù)的配置。這些設(shè)置將可以作為一個(gè)針對(duì)新用戶進(jìn)入的門檻,當(dāng)這些新用戶試圖確定使用什么數(shù)據(jù)庫(kù)時(shí),可能避免出現(xiàn)混亂的情況。當(dāng)開發(fā)一個(gè)項(xiàng)目時(shí),我們希望確保自己的工作專注于特定部分,從而降低工作中的阻礙。
 

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

由于沒有使用 start project命令生成該結(jié)構(gòu),我們會(huì)丟掉manage.pyfile文件.因此需要手工添加相關(guān)的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)在可以從命令行啟動(dòng)應(yīng)用了:
 

$ python project_name.py runserver

訪問(wèn) 127.0.0.1:8000, 會(huì)看到  “Powered by Django”頁(yè)面了!

201542094108299.png (626×403)

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

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

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)

 

你會(huì)注意到在頂部我們?cè)黾恿薿s.path Python模塊的導(dǎo)入。通過(guò)這樣做,我們已經(jīng)為新用戶創(chuàng)建了一種容易的方式指向他們的項(xiàng)目文件夾。現(xiàn)在我們能在我們的TEMPLATE_DIRS設(shè)置中輕松的添加指向模板的路徑,并開始體驗(yàn)Django的內(nèi)置標(biāo)簽和過(guò)濾器的優(yōu)勢(shì)!

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

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

相關(guān)文章

  • Python進(jìn)程通信之匿名管道實(shí)例講解

    Python進(jìn)程通信之匿名管道實(shí)例講解

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

    Python編寫單元測(cè)試代碼實(shí)例

    這篇文章主要介紹了Python編寫單元測(cè)試代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 解決pycharm運(yùn)行出錯(cuò),代碼正確結(jié)果不顯示的問(wèn)題

    解決pycharm運(yùn)行出錯(cuò),代碼正確結(jié)果不顯示的問(wèn)題

    今天小編就為大家分享一篇解決pycharm運(yùn)行出錯(cuò),代碼正確結(jié)果不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python將DataFrame的某一列作為index的方法

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

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

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

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

    輕松實(shí)現(xiàn)python搭建微信公眾平臺(tái)

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

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

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

    Python進(jìn)度條tqdm的用法詳解

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

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

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

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

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

最新評(píng)論