您好,登錄后才能下訂單哦!
首先安裝django,最簡單的方法是用pip安裝
pip install Django==1.8.2
因為中文幫助文檔是這個版本。。咳咳
話不多說,首先新建第一個django項目
django-admin startproject myblog
接著創建一個應用
cd myblog
python manage.py startapp article
然后做一些初步的設置。
進入myblog/myblog/settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
添加
'DIRS': [os.path.join(BASE_DIR, 'templates')],
順便把我們 新創建的應用加入到應用列表中
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'article', )
寫我們的第一個models
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) create_time = models.DateTimeField(auto_now_add=True) content = models.TextField()
然后我們遷移數據庫
在項目目錄下,即有manage.py的目錄
python manage.py makemigrations
第一句會更加你models的改變創建遷移腳本
python manage.py migrate
第二句就是遷移
這個models有個小問題,后面遇到了我會說~
下面我們要增加一個主頁。有兩種方式一種是基于函數視圖,一種是基于類的視圖,最開始我們就用就基礎的基于函數的視圖(實話是基于類的還不怎么會,咳咳。。其實基于函數的也不怎么會。。慢慢學唄)
因為我們要做的盡量簡單所以就只建一個顯示文章列表的主頁
from django.shortcuts import render from .models import Article def index(request): article_list = Article.objects.all() return render(request, 'article/index.html', {'article_list': article_list})
我們先從數據庫的Article表中取出所有的所有數據賦值給article_list在通過render函數傳遞給我們的模板文件index.html
接下來就時建我們的模板文件了。首先在應用的目錄下就時myblog/article/目錄下新建一個目錄templates然后在這個目錄中再建一個目錄article,再在這個目錄中建一個index.html。現在我們的項目目錄樹如下:
myblog/ ├── article │ ├── admin.py │ ├── __init__.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── __init__.py │ ├── models.py │ ├── templates │ │ └── article │ │ └── index.html │ ├── tests.py │ ├── views.py ├── db.sqlite3 ├── manage.py └── myblog ├── __init__.py ├── settings.py ├── urls.py ├── wsgi.py
為什么django能找到我們的html.index文件呢?就是因為我們之前在setting.py設置了templates:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
然后我為我們的主頁index.html增加一些簡單的html標簽
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div> {% for article in article_list %} <h2><a href="#">{{ article.title }}</a></h2> <p> Time: {{ article.create_time }} </p> <p> {{ article.content}} </p> {% endfor %} </div> </body> </html>
我們還得自己定義個url來指向我們所創建的視圖。
因為時簡單的博客 我們就直接在
myblog/myblog/urls.py中添加我們的url
from django.conf.urls import include, url from django.contrib import admin from article.views import index urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^$', index, name='index') ]
現在整個簡單的博客就搭建完成了,當然這其中還有一些問題還得解決。
我們項目的主目錄下就是有manage.py的目錄下運行
python manage.pu runserver
然后我們就可以訪問我們的博客了,輸入http://127.0.0.1:8000/
當然我們博客里面還沒有文章,因為我們這個博客沒有添加文章的頁面,所以我們要用到django幫我自動生成的后臺。
還是,在我們項目的主目錄下就是有manage.py的目錄下運行
python manage.py createsurperuser
輸入賬號密碼,新建一個后臺管理賬號
然后我們在瀏覽器中輸入http://127.0.0.1:8000/admin/訪問我們的后臺,不過我們發現并沒有我們的Article條目提供給我們編輯。解決方法如下
在我們的應用目錄中有一個admin.py文件,即myblog/article/admin.py添加代碼如下:
from django.contrib import admin from .models import Article admin.site.register(Article)
在線我們在訪問http://127.0.0.1:8000/admin/我們就可以添加文章了,當然。。。。還是有問題。。。我們點add article 增加文章后,文章列表顯示的時Article object這肯定不是我們所想要 的,我們想要的是它可以顯示我們文章的title
解決方法如下:
在myblog/article/models.py中,我們自己創建的Article中添加代碼如下
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) create_time = models.DateTimeField(auto_now_add=True) content = models.TextField() def __unicode__(self): return self.title
如果還有什么問題就是我寫這篇文章的時候遺漏了。。。。可私信我哇咔咔。不過一般不怎么看博客。。。。能不能看到就看你的運氣了~~
路人甲:這也敢叫博客!!!!
博主: 咳咳,好尷尬~
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。