前幾天在網上看到了篇采用Django搭建簡易博客的視頻,好奇心驅使也就點進去學了下,畢竟自己對於Django是無比敬畏的,並不是很了解,來次初體驗。
本文的操作環境:ubuntu、python2.7、Django1.8.6、Pycharm5。其實自從使用了ubuntu之后就很神奇的喜歡上了它,真的用起來方便很多。
1.Django項目文件並創建blog應用
(1)可以在終端中建立Django項目,使用django-admin startproject ...直接上圖:
建立blog應用:
(2)在pycharm中建立Django項目
下載安裝Pycharm,選擇new project,建立項目直接上圖:
這樣就建立好了一個項目,其實相對於vim,選取pycharm更加方便,它的縮進還有自動添加功能真的很棒。
建立好了我們可以看到:
2. 建立一個簡單項目
在創建的Django項目中,打開views.py,用到了Html中的簡單操作,編寫:
from django.shortcuts import render from django.http import HttpResponse def hello(request): return HttpResponse('<h1>hello benben<h2>')
同時,結合正則表達式,可在urls.py中做如下修改:
urlpatterns = [ url(r'^blog/$','blog.views.hello'), url(r'^admin/', include(admin.site.urls)),
]
打開瀏覽器,輸入:localhost:8000/blog/,回車:
這樣對Django的操作有了一個簡單的了解。當然結合Html的相關知識,也可以對做一定的修改:
在templates中建立hello.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>hello {{name }}! Age:{{ age|add:2 }}</h1>
<p>2015.11.22 sunday</p>
<p>願你能做自己喜歡的事兒,過自己喜歡的生活</p>
</body>
</html>
在views做如下修改:
def hello(request): name = 'benben' age = 18
return render(request,'hello.html',locals())
打開localhost:8000/blog:
3.models數據庫映射
建立一個博客,那么勢必是要有作者和文章這兩個簡單的對象,在models.py中建立:
from django.db import models # Create your models here.
class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField(max_length=18) class Article(models.Model): title=models.CharField(max_length=200) content = models.TextField() url=models.URLField() portal = models.ImageField() author = models.ForeignKey(Author)
在pycharm中tools中選取Run manage.py Task輸入migrate,如下圖:
在終端中查看建好的數據庫:
在這里是sqlite3的原因是在setting.py中:
當然,有需要使用Mysql的朋友也可以在此設置MySql.
4.admin后台管理
自動生成了admin.py,在這里建立之前的兩個類Article和Author:
from django.contrib import admin from blog.models import *
# Register your models here.
admin.site.register(Article) admin.site.register(Author)
之后運行服務器,在Run manage.py Task中輸入syncdb,連接數據庫:
輸入yes,之后的命名郵箱密碼之類的自己設定,打開瀏覽器,輸入localhost:8000/admin,回車:
輸入設定的用戶和密碼:
這樣,我們就完成了一個博客的最簡單的功能,可以訪問后台創建文章:
總的來說,要學的東西還有很多,也算是對Django有了一個簡單的認識了。總是在做着自己喜歡的事兒,嗯,想一直堅持下去呢...