學習Django,做一個blog

一、搭建開發環境

我用的是python3.3.3+django1.6.1+window xp

Python3.3.3 下載地址:
https://www.python.org/download/releases/3.3.3

Django1.6.1 下載地址:
https://www.djangoproject.com/m/releases/1.6/Django-1.6.1.tar.gz

一定要選擇合適的python django版本,版本不合適很容易出各種問題,說多了都是淚。

安裝python 雙擊python安裝包 我選擇安裝在了C盤 接下來點next就好了

安裝完成後,需要設置操作系統環境變量Path,添加Python安裝路徑 “;C:\Python33” 如圖

學習Django,做一個blog

設置完成之後,我們打開CMD命令提示符窗口,輸入“python”,然後回車,應該可以看到類似的畫面,如圖

學習Django,做一個blog

Ok,這個時候,我們的python就安裝完成了,你可以輸入指令 print “Hello world” 打印字符串,按回車鍵看一下程序的執行效果是否一樣。

我們下載的這個Django-1.61.tar.gz文件是一個標準的Unix壓縮格式的文件,我們在Windows下也可以使用WinRAR之類的軟件進行解壓,解壓之後我們得到一個Django-1.6.1的目錄,假設我們解壓到D:\Django目錄。我們打開DOS命令提示窗口,進入這個目錄,然後執行python setup.py install 這個命令來開始Django的安裝。如圖

學習Django,做一個blog

安裝完成之後,我們發現 Django 被安裝到了 C:\Python33\Lib\site-packages\django 這個目錄。在這個目錄中有一個bin子目錄,存放的是Django的常用命令, 為了方便以後操作,我們需要將這個bin路徑添加到操作系統環境變量Path。添加Django命令路徑 “;C:\Python33\Lib\site-packages\django\bin”。如圖

學習Django,做一個blog

目前為止我們已經完成 Django 安裝的操作,下邊我們需要來驗證一下我們是否可以開始工作了。首先我們打開一個CMD命令窗口,看看Django的常規指令是否能用,然後我們再看看Django是否已經和python語言環境集成到了一起。輸入“Python”進入到python運行環境,在“>>>”提示符下,我們輸入一個python的模塊導入語句 “import django”,這個語句表示我們在目前 python 運行環境中引入”django”這個功能模塊;然後我們使用這個功能模塊的“VERSION”方法來查看這個模塊的版本號,同樣我們也看到了相同的版本 號。如果你的電腦上也完整的看到這些信息的話,那麼OK,這證明你的電腦已經可以開始執行基於Django系統的python程序了。

學習Django,做一個blog

開始編寫程序

用命令行進入到你想保存網站程序的目錄,比如我是在D盤,輸入命令django-admin.py startproject blog 新建工程完成 cd blog 進入工程 manage.py runserver 啟動web服務 如圖

學習Django,做一個blog

打開瀏覽器 地址欄輸入:http://127.0.0.1:8000/ 你就能看到這樣的頁面了,如圖

學習Django,做一個blog

Django1.6.1中已經預先設置好了數據庫,所以我們只需要輸入 python manage.py syncdb 命令 來生成數據表 創建管理員用戶就好了

學習Django,做一個blog

管理員用戶名、密碼隨便 密碼是不會在命令行中顯示的(這點和linux一樣的) 如圖

學習Django,做一個blog

manage.py runserver 重啟web服務 如圖

學習Django,做一個blog

瀏覽器輸入
http://127.0.0.1:8000/admin/ 進入管理界面 如圖

學習Django,做一個blog

學習Django,做一個blog

如果這些你都完成了,那麼就離成功不遠了。

現在我們要完成blog功能了,ctrl+c 結束web服務,輸入命令manage.py startapp newpost 新建一個newpostapp 這是blog文件夾下就多了一個newpost 的文件夾

學習Django,做一個blog

下面我們要來設計數據模型

在文件夾下打開D:\blog\newpost中的 models.py ,記得用編輯器打開,如圖,

學習Django,做一個blog

編輯代碼

<code>from django.db import models/<code>

from django.contrib import admin

# Create your models here.

class BlogPost(models.Model):

title = models.CharField(max_length=150)

body = models.TextField()

timestamp = models.DateTimeField()

class BlogPostAdmin(admin.ModelAdmin):

list_display = (‘title’,'body’,'timestamp’)

admin.site.register(BlogPost,BlogPostAdmin)

激活數據模型

在文件夾下打開D:\blog\blog中settings.py

修改

<code>INSTALLED_APPS/<code>

INSTALLED_APPS = (

‘django.contrib.admin’,

‘django.contrib.auth’,

‘django.contrib.contenttypes’,

‘django.contrib.sessions’,

‘django.contrib.messages’,

‘django.contrib.staticfiles’,

‘newpost’

)

重新設計完數據模型後,我們需要生成一下數據庫中沒有的數據表,命令行中輸入命令 python manage.py syncdb 如圖

學習Django,做一個blog

重啟一下web服務 manage.py runserver 瀏覽器訪問
http://127.0.0.1:8000/admin/ 如圖

學習Django,做一個blog

你會看到相比之前多了newpost欄目 點進去寫幾篇博文吧 如圖

學習Django,做一個blog

現在我們在後臺可以寫文章了,那怎麼讓大家可以在前臺看到我們寫的文章呢?

用正則表達式來匹配訪問的url 在文件夾下打開D:\blog\blog 中的 urls.py

修改代碼為

<code>from django.conf.urls import patterns, include, url/<code>

from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns(”,

# Examples:

# url(r’^$’, ’blog1.views.home’, name=’home’),

# url(r’^blog/’, include(‘blog.urls’)),

url(r’^blog/’, include(‘newpost.urls’)),

url(r’^admin/’, include(admin.site.urls)),

)

在文件夾下打開D:\blog\newpost 新建urls.py

修改代碼為

<code>from django.conf.urls import patterns, url/<code>

from newpost import views

urlpatterns = patterns(”,

url(r’^$’, views.archive),

)

創建視圖函數 在文件夾下打開D:\blog\newpost 修改view.py

<code>from django.shortcuts import render/<code>

# Create your views here.

from django.template import RequestContext, loader

from django.http import HttpResponse

from newpost.models import BlogPost

def archive(request):

posts = BlogPost.objects.all()

template = loader.get_template(‘archive.html’)

context = RequestContext(request, {

‘posts’: posts,

})

return HttpResponse(template.render(context))

創建模版

在D:\blog\newpost 下 新建文件夾 templates 在 templates 文件夾下新建 archive.html 文件

修改 archive.html 的代碼為

<code>This is my blog,power by Django/<code>

<code>{% for post in posts %}/<code>

<code>{{ post.title}}/<code>

<code>{{ post.timestamp}}/<code>

<code>{{ post.body }}/<code>

<code>{% endfor %}/<code>

Ok,現在啟動一下web服務 manage.py runserver 瀏覽器訪問
http://127.0.0.1:8000/blog 如圖

學習Django,做一個blog

現在前端頁面也做好了 只是樣子有點醜 沒事接下來我們用css 美化它一下

打開D:\blog\newpost 新建一個static文件夾 在static中新建一個 style.css 文件

修改內容為

<code>body {/<code>

background-color: #092e20;

}

.top{

width:980px;

height:50px;

margin-left:auto;

margin-right:auto;

margin-top:0px;

margin-bottom:0px;

font-size:36px;

color:white;

}

.content{

margin-left:auto;

margin-right:auto;

margin-top:10px;

margin-bottom:0px;

width:980px;

background-color:#234F32;

padding:10px;

}

.content h1{

font-size:24px;

}

在模版文件中引用style.css

打開D:\blog\newpost\templates 中的 archive.html

修改代碼為

<code>{% load staticfiles %}This is my blog,power by Django/<code>

<code>{% for post in posts %}/<code>

<code>{{ post.title}}/<code>

<code>{{ post.timestamp}}/<code>

<code>{{ post.body }}/<code>

<code>{% endfor %}/<code>

啟動一下web服務 manage.py runserver 瀏覽器訪問
http://127.0.0.1:8000/blog 如圖

學習Django,做一個blog

第一次寫教程,儘可能寫的詳細些,希望能對想學習Django的同學有所幫助,有什麼問題可以給我留言交流。


分享到:


相關文章: