利用django創(chuàng)建一個(gè)簡(jiǎn)易的博客網(wǎng)站的示例
一、頁(yè)面實(shí)現(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>個(gè)人博客</title> </head> <body> <h1>歡迎來(lái)到我的博客</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 %}歡迎來(lái)到我的博客{% 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=唐詩(shī)" rel="external nofollow" >唐詩(shī)</a></li> <li><a href="/tag/?p=宋詞" rel="external nofollow" >宋詞</a></li> <li><a href="/tag/?p=五言古詩(shī)" rel="external nofollow" >五言古詩(shī)</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" >返回上一頁(yè)</a><br/> {{ post.body }} </body> </html>
<!-- footer.html--> {% block footer %} {% if now %} <p style="font-family: 微軟雅黑">時(shí)間:{{ now }}</p> {% else %} <p style="font-family: 微軟雅黑">如需轉(zhuǎn)載請(qǐng)注明來(lái)源</p> {% endif %} {% endblock %}
models.py 數(shù)據(jù)表的設(shè)計(jì)
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'標(biāo)題')#標(biāo)題 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'標(biāo)簽') pub_date = models.DateTimeField(default = timezone.now)#發(fā)表時(shí)間 #pub_date 以timezone.now的方式讓其自動(dòng)產(chǎn)生時(shí)間 在執(zhí)行需要pytz模塊支撐 class Meta: db_table = '博客' ordering = ['pub_date']#按照發(fā)表時(shí)間排序顯示順序依據(jù) def __str__(self):#設(shè)置此類所提供的數(shù)據(jù)項(xiàng),顯示文章標(biāo)題 return self.title
數(shù)據(jù)表的遷移 在cmd中執(zhí)行
python manage.py makemigrations python manage.py migrate
views.py 方法的實(shí)現(xiàn)
#初始頁(yè)面 顯示所有文章列表 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('/')#返回首頁(yè) #在views中調(diào)用屬于同一個(gè)標(biāo)簽文章 def search_tag(request): #tag在URL中獲取 tag = request.GET.get('p') print(tag) try: posts = Post.objects.filter(tags=tag)#注意這里寫(xiě)的是filter if posts != None:#這里使用的是posts,和index.html中對(duì)應(yīng) return render(request,'index.html',locals()) except: print('沒(méi)找到')
url.py在url中注冊(cè)路徑
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),#進(jìn)入系統(tǒng)主頁(yè) path('admin/', admin.site.urls),#進(jìn)入管理員頁(yè)面 path('post/<slug:slug>/',views.show_detail),#顯示詳細(xì)信息# 定義拼接地址,獲取標(biāo)簽信息 url(r'^tag/$', views.search_tag)#注意這里使用的是url 和正則表達(dá)式 需要前文中引入 #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)建一個(gè)簡(jiǎn)易的博客網(wǎng)站的示例的詳細(xì)內(nèi)容,更多關(guān)于django創(chuàng)建網(wǎng)站的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 開(kāi)啟Django博客的RSS功能的實(shí)現(xiàn)方法
- Django 博客實(shí)現(xiàn)簡(jiǎn)單的全文搜索的示例代碼
- 基于Django統(tǒng)計(jì)博客文章閱讀量
- Python使用Django實(shí)現(xiàn)博客系統(tǒng)完整版
- 使用python和Django完成博客數(shù)據(jù)庫(kù)的遷移方法
- 利用Celery實(shí)現(xiàn)Django博客PV統(tǒng)計(jì)功能詳解
- Python采用Django開(kāi)發(fā)自己的博客系統(tǒng)
- Python Django搭建網(wǎng)站流程圖解
- Django如何實(shí)現(xiàn)網(wǎng)站注冊(cè)用戶郵箱驗(yàn)證功能
- python3.6+django2.0+mysql搭建網(wǎng)站過(guò)程詳解
- 用Django寫(xiě)天氣預(yù)報(bào)查詢網(wǎng)站
- Python+Django搭建自己的blog網(wǎng)站
相關(guān)文章
PYTHON如何讀取和寫(xiě)入EXCEL里面的數(shù)據(jù)
這篇文章主要介紹了PYTHON如何讀取和寫(xiě)入EXCEL里面的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Python使用cx_Oracle調(diào)用Oracle存儲(chǔ)過(guò)程的方法示例
這篇文章主要介紹了Python使用cx_Oracle調(diào)用Oracle存儲(chǔ)過(guò)程的方法,結(jié)合具體實(shí)例分析了Python中通過(guò)cx_Oracle調(diào)用PL/SQL的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-10-10詳解python列表(list)的使用技巧及高級(jí)操作
這篇文章主要介紹了詳解python列表(list)的使用技巧及高級(jí)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法
今天小編就為大家分享一篇利用django+wechat-python-sdk 創(chuàng)建微信服務(wù)器接入的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟小編過(guò)來(lái)看看吧2019-02-02