利用django創(chuàng)建一個簡易的博客網(wǎng)站的示例
一、頁面實現(xiàn)
index.html
base.html
post.html
header.html
footer.html
<!-- index.html-->
{% extends 'base.html' %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>個人博客</title>
</head>
<body>
<h1>歡迎來到我的博客</h1>
{% for post in posts %}
<hr>
<p style="font-family: 微軟雅黑 ">
<a href="/post/{{ post.slug }}" rel="external nofollow" rel="external nofollow" >{{ post.title }}</a>
</p>
{% endfor %}
<br>
{{ now }}
</body>
</html>
<div class="mainContext">
<div class="rightContext">
{% block title %}歡迎來到我的博客{% endblock %}
{% block headmessage %}<h3 style="font: 微軟雅黑;">文章列表</h3>{% endblock %}
{% block content %}
<ul>
{% for post in posts %}
<p>
<li><a href="/post/{{ post.slug }}" rel="external nofollow" rel="external nofollow" >{{ post.title }}</a></li>
</p>
{% endfor %}
</ul>
{% endblock %}
</div>
</div>
<!-- base.html-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %} {% endblock %}</title>
</head>
<body>
<div class="mainContext">
<div class="leftContext">
<h3 style="font: 微軟雅黑;">文章分類</h3>
<ul>
<li><a href="/tag/?p=唐詩" rel="external nofollow" >唐詩</a></li>
<li><a href="/tag/?p=宋詞" rel="external nofollow" >宋詞</a></li>
<li><a href="/tag/?p=五言古詩" rel="external nofollow" >五言古詩</a></li>
</ul>
</div>
<div class="rightContext">
<div class="top1">
{% include 'header.html' %}
</div>
<div class="mid2">
{% block headmessage %} {% endblock %}
{% block content %} {% endblock %}
</div>
<div class="bot3">
<br/>
{% include 'footer.html' %}
</div>
</div>
</div>
</body>
</html>
<!-- post.html-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post</title>
</head>
<body>
<a href="http://localhost:8000/" rel="external nofollow" >返回上一頁</a><br/>
{{ post.body }}
</body>
</html>
<!-- footer.html-->
{% block footer %}
{% if now %}
<p style="font-family: 微軟雅黑">時間:{{ now }}</p>
{% else %}
<p style="font-family: 微軟雅黑">如需轉(zhuǎn)載請注明來源</p>
{% endif %}
{% endblock %}
models.py 數(shù)據(jù)表的設(shè)計
from django.db import models
from django.utils import timezone
from tinymce.models import HTMLField
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length = 200,verbose_name=u'標題')#標題
slug = models.CharField(max_length=200,verbose_name=u'文章網(wǎng)址')#文章網(wǎng)址
body = models.TextField()#文章內(nèi)容
tags = models.CharField(max_length=100, verbose_name=u'標簽')
pub_date = models.DateTimeField(default = timezone.now)#發(fā)表時間
#pub_date 以timezone.now的方式讓其自動產(chǎn)生時間 在執(zhí)行需要pytz模塊支撐
class Meta:
db_table = '博客'
ordering = ['pub_date']#按照發(fā)表時間排序顯示順序依據(jù)
def __str__(self):#設(shè)置此類所提供的數(shù)據(jù)項,顯示文章標題
return self.title
數(shù)據(jù)表的遷移 在cmd中執(zhí)行
python manage.py makemigrations python manage.py migrate
views.py 方法的實現(xiàn)
#初始頁面 顯示所有文章列表
def homepage(request):
posts = Post.objects.all().order_by('-pub_date')
return render(request, 'index.html', locals())
now = datetime.now()
#顯示文章內(nèi)容
def show_detail(request,slug):
try:
post = Post.objects.get(slug = slug)
if post != None:
return render(request,'post.html',locals())
except:
return redirect('/')#返回首頁
#在views中調(diào)用屬于同一個標簽文章
def search_tag(request): #tag在URL中獲取
tag = request.GET.get('p')
print(tag)
try:
posts = Post.objects.filter(tags=tag)#注意這里寫的是filter
if posts != None:#這里使用的是posts,和index.html中對應(yīng)
return render(request,'index.html',locals())
except:
print('沒找到')
url.py在url中注冊路徑
from django.conf.urls import url, include
from django.contrib import admin
from django.urls import path
from myblogs import views
#import tinymce
urlpatterns = [
path('', views.homepage),#進入系統(tǒng)主頁
path('admin/', admin.site.urls),#進入管理員頁面
path('post/<slug:slug>/',views.show_detail),#顯示詳細信息# 定義拼接地址,獲取標簽信息
url(r'^tag/$', views.search_tag)#注意這里使用的是url 和正則表達式 需要前文中引入
#url(r'^tinymce/', include('tinymce.urls')), # 這是富文本編輯器
]
在界面中添加css或者是圖片
配置setting
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]
在界面中引入
1.方法一
{% load staticfiles %}
<title>{% block title %} {% endblock %}</title>
2.方法二
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'index.css' %}" rel="external nofollow" >
以上就是利用django創(chuàng)建一個簡易的博客網(wǎng)站的示例的詳細內(nèi)容,更多關(guān)于django創(chuàng)建網(wǎng)站的資料請關(guān)注腳本之家其它相關(guān)文章!
- 開啟Django博客的RSS功能的實現(xiàn)方法
- Django 博客實現(xiàn)簡單的全文搜索的示例代碼
- 基于Django統(tǒng)計博客文章閱讀量
- Python使用Django實現(xiàn)博客系統(tǒng)完整版
- 使用python和Django完成博客數(shù)據(jù)庫的遷移方法
- 利用Celery實現(xiàn)Django博客PV統(tǒng)計功能詳解
- Python采用Django開發(fā)自己的博客系統(tǒng)
- Python Django搭建網(wǎng)站流程圖解
- Django如何實現(xiàn)網(wǎng)站注冊用戶郵箱驗證功能
- python3.6+django2.0+mysql搭建網(wǎng)站過程詳解
- 用Django寫天氣預報查詢網(wǎng)站
- Python+Django搭建自己的blog網(wǎng)站
相關(guān)文章
PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù)
這篇文章主要介紹了PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10
Python使用cx_Oracle調(diào)用Oracle存儲過程的方法示例
這篇文章主要介紹了Python使用cx_Oracle調(diào)用Oracle存儲過程的方法,結(jié)合具體實例分析了Python中通過cx_Oracle調(diào)用PL/SQL的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法
今天小編就為大家分享一篇利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法,具有很好的參考價值,希望對大家有所幫助。一起跟小編過來看看吧2019-02-02

