django 搭建blog

一,環境


  1.Python


  2.Django


 


二,安裝


  1.你的電腦沒有Python?  不用多說了坑人的Windows,送你友情連接 www.baidu.com


  2.Django安裝,推薦先裝個pip吧,easyinstall也可以,然後終端下輸入:


      pip install Django


   強烈推薦用新的Django版本!!1.8.1現在夠新麼?找的教程都是1.6.x的夠新新新了!!!


   pip install Django==1.8.1


 


  測試一下安裝成功否


  終端下:


    python


    import django


    django.VERSION


      (1, 8, 1, 'final', 0) 成功~!


 


三,開始


1.創建博客項目


找個乾淨的文件夾,終端下:


django-admin.py startproject nameblog


這裏nameblog是示例,自己記得換哦


打開文件夾,或者cd nameblog/  輸入ls


發現項目創建好了~


 


2.創建博客app


終端下:cd nameblog/  剛纔已經cd進去的同學這步省了


然後輸入:


python manage.py startapp blog


打開文件夾瞅一眼,發現多了個blog文件夾,


這時候blog項目app就創建好了~


 


2.簡單設置一下


打開nameblog/nameblog/settings.py


進行如下設置,也就是加上一條blog:


INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blog',

)

順便換下Django默認語言把,你要是英文大神,請別鳥我,第二句是換時區,不換你就自個倒時差吧,好像永遠差8小時~


1

2

3

LANGUAGE_CODE = 'zh_CN'

 

TIME_ZONE = 'Asia/Shanghai'

 


四,測試Django運行成功否


終端下輸入,


注意現在的終端目錄還應該是nameblog/下,而不是nameblog/nameblog下,請參考有manage.py的這層目錄


好的,終端下輸入:

python manage.py runserver


打開瀏覽器,


地址:127.0.0.1:8000或者localhost:8000


看到淡藍色,提示,Django工作了~


說明項目搭建成功~


如果 python manage.py runserver跑不起來


可能8000端口被佔用了,輸入:


python manage.py runserver 8001


 


五,博客數據庫


首頁要知道


Django是一個基於MVC構造的框架,模型M,視圖V和控制器C。

但是在Django中,控制器接受用戶輸入的部分由框架自行處理,

所以 Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲 MTV模式。

它們各自的職責如下:

 

層次

職責

模型(Model),即數據存取層

處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。

模板(Template),即表現層

處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。

視圖(View),即業務邏輯層

存取模型及調取恰當模板的相關邏輯。模型與模板之間的橋樑。

 


瞭解了Django先進的框架結構,就來一層一層的進行操作,


 


這裏注意一下,我們並沒有配置數據庫,Django高級一點的版本會默認配置好,


數據庫默認是sqlite3,如果你的博客,網站有很多人訪問,sqlite3也夠用了,


如果非常多的人使用建議換爲,mysql,


配置是在settings.py



DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.sqlite3',

        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

    }

開始配置模型,首先打開模型文件,nameblog/blog/models.py


models.py是博客數據庫的,每個類都是數據庫中的一張表,


配置如下:



class Tag(models.Model):

    tag_name = models.CharField(max_length=20)

    create_time = models.DateTimeField(auto_now_add=True)

 

    def __unicode__(self):

        return self.tag_name

 

class Classification(models.Model):

    name = models.CharField(max_length=20)

 

    def __unicode__(self):

        return self.name

 

class Author(models.Model):

    name = models.CharField(max_length=30)

    email = models.EmailField(blank=True)

    website = models.URLField(blank=True)

 

    def __unicode__(self):

        return u'%s' % (self.name)

 

class Article(models.Model):

    caption = models.CharField(max_length=30)

    subcaption = models.CharField(max_length=50,blank=True)

    publish_time = models.DateTimeField(auto_now_add=True)

    update_time = models.DateTimeField(auto_now = True)

    author = models.ForeignKey(Author)

    classification = models.ForeignKey(Classification)

    tags = models.ManyToManyField(Tag, blank=True)

    content = models.TextField()

我們要做博客app,就要寫文章,文章需要的一些基本信息,這裏都涵蓋了,


標籤,分類,作者信息,發佈時間等,也可以加入自己想要的表,


保存退出,


同步數據庫,在終端輸入下:


python manage.py syncdb # 進入 manage.py 所在的那個文件夾下輸入這個命令


 

注意:Django 1.7 及以上的版本需要用以下命令

python manage.py makemigrations

python manage.py migrate

第一次 同步數據庫會讓用戶輸入管理員帳號密碼


 


六,配置視圖


不多說了,打開nameblog/blog/views.py



from django.shortcuts import render

from blog.models import Article, Tag, Classification

from django.template import RequestContext

 

def blog_list(request):

    blogs = Article.objects.all().order_by('-publish_time')

    return render(request,'index.html',{"blogs":blogs})

這裏看到視圖函數返回index.html,我們不是還沒有創建html首頁嗎?對的!


 


七,創建模板首頁


模板在app中默認沒有這個文件夾,需要手動創建blog/templates/


*.html文件是要放在blog/templates/下


簡單寫點html歡迎代碼



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>fank</title>

</head>

<body>

<h1>歡迎光臨xx的博客</h1>

</body>

</html>

但是這是靜態頁面還用Django搭建起來未必太Low了吧?


加上等下我們會發布的博客文章


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>fank</title>

</head>

<body>

<h1>歡迎光臨xx的博客</h1>

<div>

{% for blog in blogs %}

  <div class="blog_body">

    <div class="blog_title"><a href="/blog/detail/?id=` blog`.`id `">` blog`.`caption `</a></div>

    <div class="blog_info">

      <ul class="blog_info_list">

        <li>分類:` blog`.`classification `</li>

        <li>發表時間:{{ blog.publish_time|date:"Y-m-d H:i" }}</li>

        <li>標籤:

          {% for tag in blog.tags.all %}

            ` tag`.`tag_name `

          {% endfor %}

        </li>

      </ul>

    </div>

    <div class="blog_description">

      ` blog`.`content `

    </div>

  </div>

{% endfor %}

</div>

</body>

</html>

保存退出.


 


八,配置url


直到現在,我們啓動項目


python manage.py runserver


你會發現,開始萌萌噠Django歡迎界面,說好的博客app呢?!


想要訪問到網頁,需要配置Url


打開nameblog/nameblog/urls.py


配置:


urlpatterns = [

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

    url(r'^$','blog.views.blog_list',name='blog_list'),

]

這時候,把項目跑起來


python manage.py runserver


你會發現,


歡迎光臨xx的博客


成功了~!


 


九,美化網頁


沒有css,js的網頁不是好網頁


創建blog/static/p_w_picpaths; blog/static/css; blog/static/js


美化html,自己搞把,或者下載現成的模板,美化大家不一個品,這裏就不上我的例子了


注意:靜態文件加載需要設置settings.py



STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR,'collected_static')

 

STATICFILES_DIRS = (

    os.path.join(BASE_DIR),

    '/home/icgoo/pywork/fankblog/blog/static/',

)

 

STATICFILES_FINDERS = (

    "django.contrib.staticfiles.finders.FileSystemFinder",

    "django.contrib.staticfiles.finders.AppDirectoriesFinder",

)

收集靜態文件,終端下:


python manage.py collectstatic


再次打開萌萌噠的首頁,讓人眼前一亮,有沒有?...


十,Django後臺


又人開始吐槽了,做了這麼久的博客app,到現在一篇文章都木有啊,什麼鬼!


Django給我們提供了一個強大的後臺管理,我們通過它來管理文章


打開blog/admin.py,沒有則新建



from django.contrib import admin

from .models import Article

  

  

admin.site.register(Article)

只需要這三行代碼,我們就可以擁有一個強大的後臺!


提示:urls.py中關於 admin的已經默認開啓


運行服務器,


python manage.py runserver


訪問 http://localhost:8000/admin/ 輸入設定的帳號和密碼


點擊 Articles,動手輸入 添加幾篇文章,


再訪問首頁


發現文章出現在首頁了~!! 


十一,代碼託管到Github


確保目錄在nameblog/


$ git init    //初始化


$ touch README


$ git add README   //更新README文件


$ git commit -m 'first commit'//提交更新,並註釋信息“first commit”


$ git remote add origin [email protected]:yourproject/nameblog.git   //連接遠程github項目  


$ git push -u origin master   //將本地項目更新到github項目上去


現在查看github上面的blog項目,


是不是發現已經將本地中的README文件更新上來了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章