python下搭建最簡單的django架構執行個體

來源:互聯網
上載者:User
寫慣了java代碼,最近想著學門新的語言玩玩,恰好有朋友是學python,於是也想著學學python玩下,python裡有個web架構django,這兩天也試了一下
發現也挺不錯的,把自己搭建django的經曆分享下,給新手們一個參考,哈哈


運行環境
Windows 7(64位) + Python 2.7 + Django 1.7.1
1.安裝django架構
當然你首先要有python環境,對於學python的朋友們這個就不多說了~~
我使用的是setuptools工具來安裝的,setuptools是python中安裝第三方模組常用的安裝工具
1.1安裝setuptools工具(如果會安裝的可以直接跳過)
先從這個地址下載ez_setup.py:
https://pypi.python.org/pypi/setuptools#windows(在頁面最下面)
我下載的是setuptools-7.0.zip,將其解壓,將解壓的setuptools-7.0檔案放到一個目錄,我這裡假定將其放到C:\workspace目錄下
開啟命令列cmd,在cmd中切換到C:\workspace\setuptools-7.0,即setuptools-7.0安裝目錄
運行命令:
python ez_setup.py
該命令會安裝setuptools工具,安裝後開啟你的python安裝目錄下的Scripts目錄(我的是C:\Python27\Scripts),會看到easy_install.exe等檔案
注意將python安裝目錄下的Scripts目錄(我的是C:\Python27\Scripts)添加到環境變數path,否則下面的easy_install命令會報錯
1.2安裝django架構
在cmd中輸入:
easy_install django
有的安裝過程可能會提示缺少vc++包,根據提示網址(我忘了~)下載包,我下載的是VCForPython27.msi,安裝vc++後再執行安裝
這樣就自動安裝了django,是不是很方便,哈哈


2.建立django項目,這裡假定在c:\workspace\djangoTest下建立(和java有點差別,java是直接建立項目就可以了,python是要先建立項目再在項目裡建立app)
進入c:\workspace\djangoTest目錄,輸入:
django-admin startproject mytodo       #網上很多是python django-admin.py startproject mytodo,版本不一樣可能命令有細微差別
就建立了mytodo項目


3.啟動調試伺服器
進入c:\workspace\djangoTest\djangoTest\mytodo目錄:
cd mytodo
然後輸入:
python manage.py runserver
在瀏覽器中輸入http://127.0.0.1:8000/,看能否訪問頁面


4.建立app
輸入命令:python manage.py startapp todo
就在mytodo項目下建立了一個app,即todo
編輯mytodo/settings.py檔案,在INSTALLED_APPS添加條目todo
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'todo',
)
即在最後添加一行todo(有的版本是項目名+app名,即mytodo.todo)
再次輸入:python manage.py runserver看看你app是否配置好了,養成邊寫邊測試的好習慣,哈哈~


5.設定資料庫
django預設的是使用SQLite資料庫作為後台資料庫,仍然開啟mytodo/settings.py,可以看到下面一段:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
這就是django項目的資料庫配置,預設是使用SQLite,我們就使用使用預設配置,安裝SQLite資料庫,不需要修改設定檔
聽到又要安裝資料庫,大家肯定又覺得好複雜,其實在python裡安裝三方模組,資料庫什麼的很簡單,一條命令就可以搞定了~~
輸入命令:
easy_install pysqlite
這樣就安裝了SQLite資料庫
安裝完資料庫,我們也測試一下,輸入命令:
python manage.py syncdb
出現successfully提示就安裝成功了,開啟mytodo目錄,看看裡面是否有一個db.sqlite3檔案,這就是上面配置的資料庫檔案
說到這裡,提示一下我們的命令都是在cmd命令列中輸入的,不是在python互動式環境python shell裡面輸入的,大家注意了~~


上面都是配置各種環境,下面就是正式的編寫代碼(當然也有配置),寫之前先說明一下,django裡面也是MVC模式,只是和java裡面的
不太一樣,MVC裡面的C(即controller)在django裡面不叫controller,而是view,這點需要大家注意,另外django實現了ORM架構,我們不需要自己寫操
作資料庫的代碼,調用django提供的Model層的方法就可以了
我們的流程也很簡單,就是使用者輸入一個地址,提交到控制器view的index方法,index方法調用模型層Model處理,得到結果,再跳轉到index頁面顯示結果
就是一個最簡單的流程,大家應該都瞭解吧,哈哈~~


6.配置Model層
在todo/models.py檔案中添加類TodoEntry:
class TodoEntry(models.Model):
     task = models.CharField(max_length=120)
     status = models.IntegerField()
     create_date = models.DateTimeField('create date')


     def __unicode__(self):
          return self.task

然後運行以下命令:
python manage.py makemigrations todo  #(命令前面要加python,有的版本不用加python)
該命令會在todo/migrations目錄下產生提交指令碼,開啟todo/migrations目錄,看看是否有一個0001_initial.py的檔案,就是剛剛產生的
python manage.py sqlmigrate todo 0001   #該命令可以查看剛剛的指令碼的sql語句,可以不執行
python manage.py migrate 
該命令會正真操作資料庫,即在資料庫中產生了對應的表


7.配置view層(controller)
編輯todo/views.py檔案,實現index函數:
# 'todo.views.index' 

def index(request):
    all_todo_list = TodoEntry.objects.all().order_by('-create_date')


    return render_to_response('todo/index.html', {'all_todo_list' : all_todo_list}, context_instance = RequestContext(request))
    
該函數意思是將TodoEntry表中的記錄全部取出來顯示到todo/index.html頁面,在函數中用到了TodoEntry類,還用到了兩個變數render_to_response,RequestContext
所以這裡我們要匯入對應的變數,在todo/views.py檔案開頭加入以下代碼,匯入模組變數
from models import TodoEntry
from django.shortcuts import render_to_response,RequestContext


8.配置url
編輯mytodo/url.py 中的 urlpatterns,添加以下配置:
url(r'^todo/$', 'todo.views.index')
該配置的意思是當在瀏覽器中輸入http://127.0.0.1:8000/todo時(即APP根目錄時),將跳到view層(即views.py)中的index函數處理


9.配置模板
首先在todo目錄下建立一個頁面index.html,輸入以下代碼:
{% if all_todo_list %}
    {% for entry in all_todo_list %}
        <p> {{ entry.task }}
             <a href="/todo/del/{{ entry.id }}/"> delete </a>
        </p>
    {% endfor %}
{% else %}
    <p>No todo entry are available.</p>
{% endif %}

然後編輯mytodo/settings.py 檔案,添加以下配置:
TEMPLATE_DIRS = [os.path.join(BASE_DIR],即todo目錄下的頁面都會被渲染

大家也可以在todo下建立一個templates目錄,將index.html放到templates目錄下,那就如下配置:
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
意思是在todo/templates(根目錄即是todo)目錄中的頁面都會被渲染


10.測試
開啟瀏覽器,在地址欄輸入:http://127.0.0.1:8000/todo,如果頁面正常,就說明成功了

在自己搭建django環境時,參考了某位大牛的部落格http://www.cnblogs.com/weichsel/archive/2012/10/15/2724108.html,大牛的部落格更加精鍊
大家也可以直接按照大牛的部落格來操作~~



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.