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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django:快速搭建简单的Blog

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django:快速搭建简单的Blog 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,創建項目

1, 為blog創建名為mysite的工程項目:

django-admin.py startproject mysite

2, 項目結構如下:

mysite├── manage.py└── mysite├── __init__.py├── settings.py├── urls.py└── wsgi.py
  • manage.py ----- Django項目里面的工具,通過它可以調用django shell和數據庫等。

  • settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試志以及其他一些工作的變量。

  • urls.py ----- 負責把URL模式射到應用程序。

二 ,運行開發服務器

要馬上查看django項目應用的運行,可以使用Django項目里的mange.py

切換到工程目錄,執行運行服務器命令:

python manage.py runserver

完成:

打開瀏覽器,輸入訪問地址:127.0.0.1:8000

三,創建Blog應用

python manage.py startapp blog

blog應用文件結構如下:

├── blog │ ├── admin.py │ ├── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py

四,設計的Model

在blog目錄下的models.py是blog應用的心文件之一,是定義blog數據結構的地方。

用編輯器打開models.py

新添BlogPost類,代如下:

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

BlogPost類是django.db.models.Model的一個子類 。它有變量title(blog的題),body(blog的內容部分),timestamp(blog的發表時間)。

五,設置數據庫

Dajango支持主流的數據庫服務器(MySQL,PostgreSQL,Oracle和MSSQL),但本項目使用SQLite,這里之需要通過一條簡單的命令可以創建SQLite數據庫。

創建數據庫:

切換到工程主目錄mysite/下,執行如下命令:

<span ><span >python manage.py syncdb<br></span></span>

出現下面的提示,輸入yes,然后按照提示輸入相關的信息。完成后會生成一個數據庫文件db.sqlite3

六,設置自動admin應用

1,打開mysite/mysite/urls.py,取消注釋url(r'^admin/', include(admin.site.urls))

2,編輯mysite/mysite/settings.py,在INSTALLED_APPS里面添blog應用。

添后的代如下:

<span ><span ># Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', )<br></span></span>

2,修改mysite/blog/models.py

在最后添一行代:

<span ><span >admin.site.register(BlogPost)<br></span></span>

models.py完整的代如下:

from django.db import models 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()admin.site.register(BlogPost)

3 ,打開瀏覽器,輸入http://127.0.0.1:8000/admin/,輸入剛才創建數據庫時候填寫的帳號就能進入admin界面。

七,試用admin

1, 點擊Blog Posts右側的Add 按鈕,添一個帖子。

2,讓admin的BlogPost界面更美觀

修改blog應用的models.py,為它添一個admin.ModelAdmin的子類BlogPostAdmin.以列表形式顯示BlogPost的題和時間。

from django.db import models 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','timestamp')admin.site.register(BlogPost,BlogPostAdmin)

八,建立Blog的公共部分

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

  • 一個模板(template):模板負責把遞進來的信息顯示出來。

  • 一個視圖(viw):視圖負責從數據庫獲取需要顯示的信息。

  • 一個URL模式:它負責把收到的請求和的試圖函數匹配,有時候也會向視圖遞一些參數。

1,創建模板

在blog目錄下建立template目錄(mysite/blog/templates),創建模板文件archive.html,它的內容如下:

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

2,創建一個視圖函數

在app應用的目錄下的view.py添視圖函數

from django.shortcuts import render from django.template import loader,Context from django.http import HttpResponse from blog.models import BlogPost# Create your views here.def archive(request):posts = BlogPost.objects.all()t = loader.get_template("archive.html")c = Context({'posts':posts})return HttpResponse(t.render(c))
  • posts = BlogPost.objects.all() :獲取數據庫里面所擁有BlogPost對象

  • t = loader.get_template("archive.html"):載模板

  • c = Context({'posts':posts}):模板的渲染的數據是有一個字典類的對象Context提供,這里的是一對鍵值對。

3,創建一個URL模式

第一步,在mysite/urls.py里面取消下面的一行注釋:

#

把它變成:

url(r'^blog/', include('blog.urls')),

第二步:在blog應用里面定義URL,創建一個urls.py(mysite/blog/urls.py)

from django.conf.urls import * from blog.views import archiveurlpatterns = patterns('',url(r'^$',archive),)

最后,在瀏覽器輸入如下地址http://127.0.0.1:8000/blog/

九,最后的潤色

1,模板的精確定位

在mysite/blog/templates目錄里創建一個叫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>my blog</h1>{% block content %}{% endblock %}</body> </html>

2,修改archive.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 %}

刷新瀏覽器可以看到效果如下:

3,按日期排序

修改blog 應用下的models.py,為BlogPost添一個Meta嵌套類。如下:

<span >class BlogPost(models.Model):title = models.CharField(max_length = 150)body = models.TextField()timestamp = models.DateTimeField()class Meta:ordering = ('-timestamp',)<br></span>

刷新瀏覽器,如下:

文章出處:?開源中國?
文章地址:?http://my.oschina.net/matrixchan/blog/184445?
本文地址:?http://www.webrube.com/django-python-web_rube/2057?
本文由?嚕吧?整理,轉載請保留以上信息; 如有侵犯您的版權, 請聯系微信: 3715397 。

轉載于:https://www.cnblogs.com/jxrichar/p/3840793.html

總結

以上是生活随笔為你收集整理的Django:快速搭建简单的Blog的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。