日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django 快速搭建blog

發(fā)布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 快速搭建blog 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

 Django?自稱是“最適合開發(fā)有限期的完美WEB框架”。本文參考《Django?web開發(fā)指南》,快速搭建一個blog?出來,在中間涉及諸多知識點,這里不會詳細(xì)說明,如果你是第一次接觸Django?,本文會讓你在感性上對Django有個認(rèn)識,完成本文操作后會讓你有興趣閱讀的相關(guān)書籍和文檔。

廢話少說,come?on!!

本操作的環(huán)境:

===================

Windows 7/10

python?2.7

Django?1.8.2

===================

?

?

?創(chuàng)建工程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

創(chuàng)建mysite工程項目:

D:/djpy> django-admin.py startproject mysite

工程目錄結(jié)構(gòu):

manage.py?-----?Django項目里面的工具,通過它可以調(diào)用django?shell和數(shù)據(jù)庫等。

settings.py?----?包含了項目的默認(rèn)設(shè)置,包括數(shù)據(jù)庫信息,調(diào)試標(biāo)志以及其他一些工作的變量。

urls.py?-----?負(fù)責(zé)把URL模式映射到應(yīng)用程序。

?

?

創(chuàng)建blog應(yīng)用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

在mysite目錄下創(chuàng)建blog應(yīng)用

D:/pydj> cd mysite D:/djpy/mysite$ python manage.py startapp blog

目錄結(jié)構(gòu):

?

?

初始化admin后臺數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

  python?自帶SQLite數(shù)據(jù)庫,Django支持各種主流的數(shù)據(jù)庫,這里為了方便推薦使用SQLite,如果使用其它數(shù)據(jù)庫請在settings.py文件中設(shè)置。

切換到mysite創(chuàng)建數(shù)據(jù)庫:

D:/djpy/mysite$ python manage.py syncdb

C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

Operations to perform:Synchronize unmigrated apps: staticfiles, messagesApply all migrations: admin, contenttypes, auth, sessionsSynchronizing apps without migrations:Creating tables...Running deferred SQL...Installing custom SQL...Running migrations:Rendering model states... DONEApplying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying sessions.0001_initial... OK

You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'fnngj'): ? ?用戶名(默認(rèn)當(dāng)前系統(tǒng)用戶名)
Email address: fnngj@126.com ? ? 郵箱地址
Password: ? ? 密碼
Password (again): ? ?重復(fù)密碼
Superuser created successfully.

?

?

設(shè)置admin應(yīng)用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

  

  admin?是Django?自帶的一個后臺管理系統(tǒng)。

1、添加blog應(yīng)用,打開mysite/mysite/settings.py?文件:

# Application definition INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog', )

?在列表末尾,添加blog?應(yīng)用

?

2、在我們創(chuàng)建django項目時,admin就已經(jīng)創(chuàng)建,打開mysite/mysite/urls.py文件:

from django.conf.urls import include, url from django.contrib import adminurlpatterns = [url(r'^admin/', include(admin.site.urls)), ]

?

3、啟動django容器

D:\pydj\mysite>python manage.py runserver Performing system checks...System check identified no issues (0 silenced). October 04, 2015 - 20:56:45 Django version 1.8.2, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.

??

4、訪問后臺應(yīng)用

http://127.0.0.1:8000/admin

?

?輸入用戶、密碼,用戶名密碼為第一次創(chuàng)建數(shù)據(jù)庫時創(chuàng)建的。回想“設(shè)置數(shù)據(jù)庫”時的設(shè)置。

?

?

設(shè)計Model(即設(shè)計數(shù)據(jù)庫表)?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

1、設(shè)計model

  現(xiàn)在我們打開blog目錄下的models.py文件,這是我們定義blog數(shù)據(jù)結(jié)構(gòu)的地方。打開mysite/blog/models.py?文件進(jìn)行修改:

from django.db import models from django.contrib import admin# Create your models here. class BlogsPost(models.Model):title = models.CharField(max_length = 150)body = models.TextField()timestamp = models.DateTimeField()admin.site.register(BlogsPost)

?

2、?再次初始化數(shù)據(jù)庫

D:\pydj\mysite>python manage.py makemigrations blog Migrations for 'blog':0001_initial.py:- Create model BlogsPostD:\pydj\mysite>python manage.py syncdb C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)Operations to perform:Synchronize unmigrated apps: staticfiles, messagesApply all migrations: admin, blog, contenttypes, auth, sessions Synchronizing apps without migrations:Creating tables...Running deferred SQL...Installing custom SQL... Running migrations:Rendering model states... DONEApplying blog.0001_initial... OK

?

?

3、再次runserver啟動服務(wù),訪問admin后臺,創(chuàng)建文章。

  登陸成功選擇add?創(chuàng)建博客

輸入博客標(biāo)題,正文、日期時間、點擊save?創(chuàng)建博客。

?

?

?

設(shè)置admin?的BlogsPost界面 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

  打開mysite/blog/models.py?文件,做如下修改:

from django.db import models from django.contrib import admin# Create your models here. class BlogsPost(models.Model):title = models.CharField(max_length = 150)body = models.TextField()timestamp = models.DateTimeField()class BlogPostAdmin(admin.ModelAdmin):list_display = ('title','timestamp')admin.site.register(BlogsPost,BlogPostAdmin)

?

創(chuàng)建BlogPostAdmin類,繼承admin.ModelAdmin父類,以列表的形式顯示BlogPost的標(biāo)題和時間。

?

?

創(chuàng)建blog的公共部分

從Django的角度看,一個頁面具有三個典型的組件:

一個模板(template):模板負(fù)責(zé)把傳遞進(jìn)來的信息顯示出來。

一個視圖(view):視圖負(fù)責(zé)從數(shù)據(jù)庫獲取需要顯示的信息。

一個URL模式:它負(fù)責(zé)把收到的請求和你的試圖函數(shù)匹配,有時候也會向視圖傳遞一些參數(shù)。

?

?

創(chuàng)建模板 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

在blog項目下創(chuàng)建templates目錄(mysite/blog/templates/),在目錄下創(chuàng)建模板文件index.html,內(nèi)容如下:

{% for post in posts %}<h2>{{ post.title }}</h2><p>{{ post.timestamp }}</p><p>{{ post.body }}</p> {% endfor%}

?

?

創(chuàng)建視圖函數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

打開mysite/blog/views.py文件:

#coding=utf-8 from django.shortcuts import render from blog.models import BlogsPost from django.shortcuts import render_to_response# Create your views here. def index(request):blog_list = BlogsPost.objects.all() return render_to_response('index.html',{'blog_list':blog_list})

blog_list =?BlogPost.objects.all()?:獲取數(shù)據(jù)庫里面所擁有BlogPost對象

render_to_response()返回一個頁面(index.html),順帶把數(shù)據(jù)庫中查詢出來的所有博客內(nèi)容(blog_list)也一并返回。

?

?

創(chuàng)建blog的URL模式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

在mysite/urls.py文件里添加blog的url:

#coding=utf-8 from django.conf.urls import patterns, include, url from django.contrib import adminurlpatterns = patterns('',url(r'^admin/', include(admin.site.urls)),url(r'^index/$', 'blog.views.index'), )

?

再次啟動服務(wù)($?python?manage.py?runserver),訪問blog應(yīng)用(http://127.0.0.1:8000/blog/)。

頁面如下:

當(dāng)然,讀者可以繼續(xù)到admin后臺添加blog,從而刷新這個頁是否顯示新添加的blog。

?

?

添加樣式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

創(chuàng)建基礎(chǔ)模板

在mysite/blog/templates目錄里創(chuàng)建base.html的模板:

<html><style type="text/css">body{color:#efd;background:#453;padding:0 5em;margin:0}h1{padding:2em 1em;background:#675}h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}p{margin:1em 0}</style><body><h1>蟲師blog</h1><h3>大人不華,君子務(wù)實</h3>{% block content %}{% endblock %}</body> </html>

?

修改index.html模板,讓它引用base.html模板和它的“content”塊。

{% extends "base.html" %}{% block content %}{% for post in posts %}<h2>{{ post.title }}</h2><p>{{ post.timestamp | date:"1,F jS"}}</p><p>{{ post.body }}</p>{% endfor %}{% endblock %}

再次刷新博客頁面:

  請系統(tǒng)的學(xué)習(xí)django?web框架,然后在此基礎(chǔ)上做更多的擴(kuò)展,開發(fā)自己真正的blog?

總結(jié)

以上是生活随笔為你收集整理的django 快速搭建blog的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。