This commit is contained in:
myminwang 2018-07-04 20:07:00 +08:00
parent 83ec3a3d59
commit 0eb8fc3169
103 changed files with 5033 additions and 121 deletions

Binary file not shown.

Binary file not shown.

View File

@ -7,11 +7,10 @@ import xadmin
from xadmin import views from xadmin import views
from xadmin.plugins.auth import UserAdmin from xadmin.plugins.auth import UserAdmin
from .models import Blog, Conment, User from .models import Blog, Conment, Category, Tagprofile, Message
class BaseSetting:
class BaseSetting(object):
""" """
后台修改需要的配置 后台修改需要的配置
""" """
@ -19,7 +18,7 @@ class BaseSetting(object):
use_bootswatch = True use_bootswatch = True
class GlobalSettings(object): class GlobalSettings:
""" """
后台修改 后台修改
""" """
@ -27,20 +26,30 @@ class GlobalSettings(object):
site_footer = '博客后台管理' site_footer = '博客后台管理'
menu_style = 'accordion' # 开启分组折叠 menu_style = 'accordion' # 开启分组折叠
class BlogAdmin:
class BlogAdmin(object): list_display = ['title', 'category', 'author','add_time', 'read_nums', 'conment_nums', 'tag']
list_display = ['name', 'content', 'add_time', 'click_nums'] list_filter = ['title', 'category', 'author','read_nums', 'conment_nums', 'tag']
list_filter = ['name', 'content', 'click_nums'] search_fields = ['title', 'category', 'author','add_time', 'read_nums', 'conment_nums', 'tag']
search_fields = ['name', 'content', 'add_time', 'click_nums'] readonly_fields = ['add_time', 'read_nums', 'conment_nums','edit_time']
class ConmentAdmin(object): class ConmentAdmin:
list_display = ['user', 'conment', 'add_time'] pass
list_filter = ['user', 'conment']
search_fields = ['user', 'conment', 'add_time']
# xadmin.site.register(User,UsersAdmin) class CategoryAdmin:
xadmin.site.register(Blog, BlogAdmin) pass
xadmin.site.register(Conment, ConmentAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting) class TagAdmin:
xadmin.site.register(views.CommAdminView, GlobalSettings) pass
class MessageAdmin:
pass
xadmin.site.register(views.BaseAdminView,BaseSetting)
xadmin.site.register(views.CommAdminView,GlobalSettings)
xadmin.site.register(Blog,BlogAdmin)
xadmin.site.register(Conment,ConmentAdmin)
xadmin.site.register(Category,CategoryAdmin)
xadmin.site.register(Tagprofile,TagAdmin)
xadmin.site.register(Message,MessageAdmin)

View File

@ -0,0 +1,107 @@
# Generated by Django 2.0.7 on 2018-07-04 07:14
import datetime
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('blog', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Category',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=20, verbose_name='文档分类')),
('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='创建时间')),
('edit_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='修改时间')),
],
options={
'verbose_name': '文档分类',
'verbose_name_plural': '文档分类',
},
),
migrations.CreateModel(
name='Message',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('message', models.TextField(verbose_name='留言')),
('add_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='时间')),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户')),
],
options={
'verbose_name': '留言',
'verbose_name_plural': '留言',
},
),
migrations.CreateModel(
name='Tag',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('tag_name', models.CharField(max_length=30, verbose_name='标签名')),
],
),
migrations.RemoveField(
model_name='blog',
name='click_nums',
),
migrations.RemoveField(
model_name='blog',
name='name',
),
migrations.AddField(
model_name='blog',
name='author',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作者'),
),
migrations.AddField(
model_name='blog',
name='conment_nums',
field=models.IntegerField(default=0, verbose_name='评论数'),
),
migrations.AddField(
model_name='blog',
name='digest',
field=models.TextField(default='', verbose_name='摘要'),
),
migrations.AddField(
model_name='blog',
name='edit_time',
field=models.DateTimeField(default=datetime.datetime.now, verbose_name='更新时间'),
),
migrations.AddField(
model_name='blog',
name='read_nums',
field=models.IntegerField(default=0, verbose_name='阅读数'),
),
migrations.AddField(
model_name='blog',
name='title',
field=models.CharField(default='', max_length=50, verbose_name='博客文章'),
),
migrations.AddField(
model_name='conment',
name='blog',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='blog.Blog', verbose_name='博客'),
),
migrations.AlterField(
model_name='blog',
name='add_time',
field=models.DateTimeField(default=datetime.datetime.now, verbose_name='创建时间'),
),
migrations.AddField(
model_name='blog',
name='category',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='blog.Category', verbose_name='文章分类'),
),
migrations.AddField(
model_name='blog',
name='tag',
field=models.ManyToManyField(to='blog.Tag'),
),
]

View File

@ -0,0 +1,42 @@
# Generated by Django 2.0.7 on 2018-07-04 17:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('blog', '0002_auto_20180704_0714'),
]
operations = [
migrations.RemoveField(
model_name='conment',
name='blog',
),
migrations.AddField(
model_name='conment',
name='source_id',
field=models.CharField(default='1', max_length=25, verbose_name='文章id或source名称'),
),
migrations.AddField(
model_name='conment',
name='title',
field=models.CharField(default='', max_length=100, verbose_name='标题'),
),
migrations.AddField(
model_name='conment',
name='url',
field=models.CharField(default='', max_length=100, verbose_name='链接'),
),
migrations.AlterField(
model_name='blog',
name='image',
field=models.ImageField(upload_to='blog/%Y/%m', verbose_name='博客封面'),
),
migrations.AlterField(
model_name='conment',
name='user',
field=models.CharField(max_length=25, verbose_name='评论用户'),
),
]

View File

@ -0,0 +1,28 @@
# Generated by Django 2.0.7 on 2018-07-04 17:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('blog', '0003_auto_20180704_1744'),
]
operations = [
migrations.AlterField(
model_name='conment',
name='source_id',
field=models.CharField(max_length=25, verbose_name='文章id或source名称'),
),
migrations.AlterField(
model_name='conment',
name='title',
field=models.CharField(max_length=100, verbose_name='标题'),
),
migrations.AlterField(
model_name='conment',
name='url',
field=models.CharField(max_length=100, verbose_name='链接'),
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 2.0.7 on 2018-07-04 17:56
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('blog', '0004_auto_20180704_1745'),
]
operations = [
migrations.AlterModelOptions(
name='tag',
options={'verbose_name': '标签名', 'verbose_name_plural': '标签名'},
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 2.0.7 on 2018-07-04 17:59
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('blog', '0005_auto_20180704_1756'),
]
operations = [
migrations.RenameModel(
old_name='Tag',
new_name='Tagprofile',
),
]

View File

@ -5,11 +5,12 @@ from datetime import datetime
from django.db import models from django.db import models
from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import AbstractUser
# Create your models here. # Create your models here.
class User(AbstractUser): class User(AbstractUser):
"""用户信息""" """用户信息"""
class Meta(object): class Meta:
verbose_name = '用户信息' verbose_name = '用户信息'
verbose_name_plural = verbose_name verbose_name_plural = verbose_name
@ -17,32 +18,81 @@ class User(AbstractUser):
return self.username return self.username
class Blog(models.Model): class Category(models.Model):
"""博客""" """博客分类"""
name = models.CharField(verbose_name='博客', max_length=50) name = models.CharField(verbose_name='文档分类',max_length=20)
content = models.TextField(verbose_name='内容') add_time = models.DateTimeField(verbose_name='创建时间',default=datetime.now)
add_time = models.DateTimeField(verbose_name='添加时间',default=datetime.now) edit_time = models.DateTimeField(verbose_name='修改时间',default=datetime.now)
click_nums = models.IntegerField(verbose_name='点击数', default=0)
image = models.ImageField(verbose_name='博客封面', upload_to='media/blog/%Y/%m')
class Meta(object): class Meta:
verbose_name = '博客信息' verbose_name = '文档分类'
verbose_name_plural = verbose_name verbose_name_plural = verbose_name
def __str__(self): def __str__(self):
return self.name return self.name
class Tagprofile(models.Model):
tag_name = models.CharField('标签名', max_length=30)
class Meta:
verbose_name = '标签名'
verbose_name_plural = verbose_name
def __str__(self):
return self.tag_name
class Blog(models.Model):
"""博客文章"""
title = models.CharField(verbose_name='博客文章', max_length=50,default='')
category = models.ForeignKey(Category,on_delete=models.CASCADE,null=True,verbose_name='文章分类')
author = models.ForeignKey(User,on_delete=models.CASCADE,null=True,verbose_name='作者')
content = models.TextField(verbose_name='内容')
digest = models.TextField(verbose_name='摘要',default='')
add_time = models.DateTimeField(verbose_name='创建时间',default=datetime.now)
edit_time = models.DateTimeField(verbose_name='更新时间',default=datetime.now)
read_nums = models.IntegerField(verbose_name='阅读数', default=0)
conment_nums = models.IntegerField(verbose_name='评论数', default=0)
image = models.ImageField(verbose_name='博客封面', upload_to='blog/%Y/%m')
tag = models.ManyToManyField(Tagprofile)
class Meta:
verbose_name = '博客信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.title
class Conment(models.Model): class Conment(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True,verbose_name='用户') """对博客评论"""
user = models.CharField(verbose_name='评论用户', max_length=25)
title = models.CharField(verbose_name="标题", max_length=100)
source_id = models.CharField(verbose_name='文章id或source名称', max_length=25)
conment = models.TextField(verbose_name='评论内容') conment = models.TextField(verbose_name='评论内容')
add_time = models.DateTimeField(verbose_name='添加时间',default=datetime.now) add_time = models.DateTimeField(verbose_name='添加时间',default=datetime.now)
url = models.CharField(verbose_name='链接', max_length=100)
class Meta(object): class Meta:
verbose_name = '评论信息' verbose_name = '评论信息'
verbose_name_plural = verbose_name verbose_name_plural = verbose_name
def __str__(self): def __str__(self):
return self.user return self.title
class Message(models.Model):
"""留言"""
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True,verbose_name='用户')
message = models.TextField(verbose_name='留言')
add_time = models.DateTimeField(verbose_name='时间',default=datetime.now)
class Meta:
verbose_name = '留言'
verbose_name_plural = verbose_name
def __str__(self):
return self.message

21
blog/templatetags/__init__.py Executable file
View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name __init__.py
Description :
Author : JHao
date 2017/4/14
-------------------------------------------------
Change Activity:
2017/4/14:
-------------------------------------------------
"""
__author__ = 'JHao'
import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
if __name__ == '__main__':
pass

Binary file not shown.

View File

@ -0,0 +1,100 @@
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name custom_filter.py
Description :
Author : JHao
date 2017/4/14
-------------------------------------------------
Change Activity:
2017/4/14:
-------------------------------------------------
"""
__author__ = 'JHao'
import re
import markdown
from django import template
from django.template.defaultfilters import stringfilter
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def slice_list(value, index):
return value[index]
@register.filter(is_safe=True)
@stringfilter
def custom_markdown(value):
content = mark_safe(markdown.markdown(value, extensions=['markdown.extensions.fenced_code',
# 'markdown.extensions.codehilite',
'markdown.extensions.tables'],
safe_mode=True, enable_attributes=False))
# Prism 代码高亮查件 需要将所有的
# markdown转换的代码:<pre><code class="python">import *** </code></pre>
# 转换为
# <pre class="line-numbers"><code class="language-python">import *** </code></pre>
code_list = re.findall(r'<pre><code class="(.*)">', content, re.M)
for code in code_list:
content = re.sub(r'<pre><code class="(.*)">',
'<pre class="line-numbers"><code class="language-{code}">'.format(code=code.lower()), content,
1)
content = re.sub(r'<pre>\s?<code>', '<pre class="line-numbers"><code class="language-python">', content)
return content
@register.simple_tag(takes_context=True)
def paginate(context, object_list, page_count):
context['count'] = object_list.count
paginator = Paginator(object_list, page_count)
page = context['request'].GET.get('page')
try:
object_list = paginator.page(page)
context['current_page'] = int(page)
except PageNotAnInteger:
object_list = paginator.page(1)
context['current_page'] = 1
except EmptyPage:
object_list = paginator.page(paginator.num_pages)
context['current_page'] = paginator.num_pages
context['article_list'] = object_list
context['last_page'] = paginator.num_pages
context['first_page'] = 1
return '' # 必须加这个否则首页会显示个None
@register.filter
def tag2string(value):
"""
将Tag转换成string >'python,爬虫'
:param value:
:return:
"""
return ','.join([each.get('tag_name', '') for each in value])
@register.filter
def getTag(value):
"""
展示一个tag
:param value:
:return:
"""
tag = ''
for each in value:
if each.get('tag_name'):
tag = each.get("tag_name")
break
return tag
if __name__ == '__main__':
pass

22
blog/urls.py Normal file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "问道编程"
__date__ = "2018-07-04 14:45"
from django.urls import path
from .views import *
urlpatterns = [
path('index/', Index.as_view(), name='index'),
path('about/', About.as_view(), name='about'),
path('archive/', Archive.as_view(), name='archive'),
path('link/', Link.as_view(), name='link'),
path('message', Message.as_view(), name='message'),
path('article/<int:pk>/', Articles.as_view(), name='article'),
path('get_comment/', GetComment, name='get_comment'),
path('detail/<int:pk>/', Detail.as_view(), name='detail'),
path('search/', Search.as_view(), name='search'),
path('tag/<int:id>/', Tagcloud.as_view(), name='tag'),
]

View File

@ -1,11 +1,190 @@
# _*_ coding:utf-8 _*_ # _*_ coding:utf-8 _*_
from django.shortcuts import render import json
from django.http import JsonResponse
from django.shortcuts import render, get_object_or_404
from django.views.generic import View from django.views.generic import View
from django.views.decorators.csrf import csrf_exempt
from django.db.models import Q
# Create your views here. # Create your views here.
from .models import Blog, Category, Conment, Tagprofile
# 通用模块
tag_list = Tagprofile.objects.all() # 标签云
category_list = Category.objects.all() # 分类
article_rank = Blog.objects.all().order_by('-conment_nums')[:10] # 热门博客
comment_list = Conment.objects.all().order_by('-add_time')[:20] # 最新评论
class Index(View): class Index(View):
"""首页显示""" """首页显示"""
def get(self,request):
return render(request,'index.html',{}) def get(self, request):
article_list = Blog.objects.all().order_by('-edit_time')[:5]
article_rank = Blog.objects.all().order_by('-conment_nums')[:5]
return render(request, 'index.html', {
'article_list': article_list,
'article_rank': article_rank,
'category_list': category_list,
'tag_list': tag_list,
'comment_list': comment_list,
})
class About(View):
"""关于"""
def get(self, request):
return render(request, 'about.html', {
'article_rank': article_rank,
'category_list': category_list,
'tag_list': tag_list,
'comment_list': comment_list,
})
class Articles(View):
"""博客文章"""
def get(self, request, pk):
if pk:
category_obj = get_object_or_404(Category, id=pk)
category = category_obj.name
article_list = Blog.objects.filter(category_id=pk)
else: # pk=0时获取全部列表
article_list = Blog.objects.all()
category = ''
count = article_list.count()
return render(request, 'articles.html', {
'article_list': article_list,
'category': category,
'count': count,
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
})
class Archive(View):
"""归档"""
def get(self, request):
article_list = Blog.objects.all().order_by('-edit_time')
return render(request, 'archive.html', {
'article_list': article_list,
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
})
class Link(View):
"""链接"""
def get(self, request):
return render(request, 'link.html', {
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
})
pass
class Message(View):
"""留言"""
def get(self, request):
return render(request, 'message_board.html', {
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
})
class Search(View):
"""搜索"""
def get(self,request):
key = request.GET.get('key','')
if key:
article_list = Blog.objects.filter(Q(title__icontains=key) | Q(content__icontains=key))
else:
article_list = ''
count = article_list.count()
return render(request,'search.html',{
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
'article_list':article_list,
'count':count,
'key':key,
})
@csrf_exempt
def GetComment(request):
"""
接收畅言的评论回推 post方式回推
:param request:
:return:
"""
arg = request.POST
data = arg.get('data')
data = json.loads(data)
title = data.get('title')
url = data.get('url')
source_id = data.get('sourceid')
if source_id not in ['message']:
article = Blog.objects.get(id=source_id)
article.commenced()
comments = data.get('comments')[0]
content = comments.get('content')
user = comments.get('user').get('nickname')
Conment(title=title, source_id=source_id, user=user, url=url, conment=content).save()
return JsonResponse({"status": "ok"})
class Detail(View):
"""博客详情页"""
def get(self, request, pk):
article = get_object_or_404(Blog, id=pk)
return render(request, 'detail.html', {
'article': article,
'source_id': article.id,
'tag_list': tag_list,
'category_list': category_list,
'article_rank': article_rank,
'comment_list': comment_list,
})
class Tagcloud(View):
"""标签云"""
def get(self, request, id):
tag = get_object_or_404(Tagprofile, id=id).tag_name
article_list = Blog.objects.filter(tag__tag_name=tag)
count = article_list.count()
return render(request, 'tag.html', {
'tag': tag,
'article_list': article_list,
'category_list': category_list,
'tag_list': tag_list,
'article_rank': article_rank,
'comment_list': comment_list,
'count': count,
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -71,6 +71,7 @@ TEMPLATES = [
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media',
], ],
}, },
}, },
@ -131,16 +132,9 @@ USE_TZ = False
# https://docs.djangoproject.com/en/2.0/howto/static-files/ # https://docs.djangoproject.com/en/2.0/howto/static-files/
STATIC_URL = '/static/' STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
# 解决:配置正确,而网页中文件无法加载的问题
STATICFILES_DIRS = (
('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
)
# 配置用户上传的文件 # 配置用户上传的文件
MEDIA_URL = '/media/' MEDIA_URL = '/media/'

View File

@ -13,13 +13,24 @@ Including another URLconf
1. Import the include() function: from django.urls import include, path 1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
""" """
from django.conf import settings
from django.views.static import serve # 处理静态文件
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path,include
from django.conf.urls import url
import xadmin import xadmin
from blog.views import * from blog.views import *
urlpatterns = [ urlpatterns = [
path('admin/', xadmin.site.urls), path('admin/', xadmin.site.urls),
path('',Index.as_view(),name='index'), path('',Index.as_view(),name='index'),
path('blog/', include(('blog.urls', 'blog'), namespace='blog')),
] ]
if settings.DEBUG:
# 配置静态文件访问处理
urlpatterns.append(url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}))
urlpatterns.append(url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}))

4318
static/js/jquery.min.js vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% block title %} {% block title %}
<title>AboutMe - 烂笔头</title> <title>AboutMe - 烂笔头</title>

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% load custom_filter %} {% load custom_filter %}
{% block title %} {% block title %}
@ -16,11 +16,11 @@
<li class="event"> <li class="event">
<input type="radio" name="tl-group" {% if forloop.counter0 == 0 %} checked {% endif %}/> <input type="radio" name="tl-group" {% if forloop.counter0 == 0 %} checked {% endif %}/>
<label></label> <label></label>
<div class="thumb"><span>{{ article.date_time }}</span></div> <div class="thumb"><span>{{ article.edit_time }}</span></div>
<div class="content-perspective"> <div class="content-perspective">
<div class="content"> <div class="content">
<div class="content-inner"> <div class="content-inner">
<h3><a href="{% url "blog:detail" pk=article.id%}">{{ article.title }}</a></h3> <h3><a href="{% url "blog:detail" article.id%}">{{ article.title }}</a></h3>
<p>{{ article.digest }}</p> <p>{{ article.digest }}</p>
</div> </div>
</div> </div>

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% load custom_filter %} {% load custom_filter %}
{% block title %} {% block title %}
@ -10,7 +10,7 @@
{% if article_list %} {% if article_list %}
<section class="mysection"> <section class="mysection">
<h4 class="index-title"> <h4 class="index-title">
<a href="{% url "blog:article" pk=0 %}"><i class="el-th-list"></i>{% if category %}列表{% else %} 全部 {% endif %} &nbsp;&nbsp;> &nbsp;&nbsp;</a> <a href="{% url "blog:article" 0 %}"><i class="el-th-list"></i>{% if category %}列表{% else %} 全部 {% endif %} &nbsp;&nbsp;> &nbsp;&nbsp;</a>
<span class="orange-text">{{ category }}</span> <span class="orange-text">{{ category }}</span>
<span style="float:right;margin-right:10px;">共有文章:<a class="orange-text"> {{ count }} </a></span> <span style="float:right;margin-right:10px;">共有文章:<a class="orange-text"> {{ count }} </a></span>
</h4> </h4>
@ -18,26 +18,26 @@
<!--列表开始--> <!--列表开始-->
<ul> <ul>
{% for article in article_list %} {% for article in article_list %}
<li {% if article.view > 500 %}id="tuijian"{% elif article.view > 100 %} id="Hot" {% endif %}> <li {% if article.read_nums > 500 %}id="tuijian"{% elif article.read_nums > 100 %} id="Hot" {% endif %}>
<div class="arcimg"> <div class="arcimg">
<img src="{{ article.picture }}" <img src="{{ MEDIA_URL }}{{ article.image }}"
alt="{{ article.title }}" title="{{ article.title }}"/> alt="{{ article.title }}" title="{{ article.title }}"/>
</div> </div>
<div class="arc-right"> <div class="arc-right">
<h4 class="blue-text"><a href="{% url "blog:detail" pk=article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4> <h4 class="blue-text"><a href="{% url "blog:detail" article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4>
<p>{{ article.digest }}</p> <p>{{ article.digest }}</p>
<ul> <ul>
<li><a title="{{ article.author }} {{ article.date_time }} 发表 "><i class="el-time"></i> {{ article.date_time }}</a></li> <li><a title="{{ article.author }} {{ article.edit_time }} 发表 "><i class="el-time"></i> {{ article.edit_time }}</a></li>
<li><a href="#" title="作者: {{ article.author }}"><i class="el-user"></i>{{ article.author }}</a></li> <li><a href="#" title="作者: {{ article.author }}"><i class="el-user"></i>{{ article.author }}</a></li>
<li><a href="#" title="已有 {{ article.comment }} 条评论"><i class="el-comment"></i>{{ article.comment }}</a> <li><a href="#" title="已有 {{ article.conment_nums }} 条评论"><i class="el-comment"></i>{{ article.conment_nums }}</a>
</li> </li>
<li><a title="已有 {{ article.view }} 次浏览"><i class="el-eye-open"></i>{{ article.view }}</a></li> <li><a title="已有 {{ article.read_nums }} 次浏览"><i class="el-eye-open"></i>{{ article.read_nums }}</a></li>
<li class="mob-hidden"> <li class="mob-hidden">
<i class="el-tag"></i> <i class="el-tag"></i>
<a href="#">{{ article.tag.values| getTag }}</a>&nbsp; <a href="#">{{ article.tag.values| getTag }}</a>&nbsp;
</li> </li>
<li><a href="{% url "blog:article" pk=article.category_id %}" title="查看分类"><i class="el-th-list"></i>{{ article.category }}</a></li> <li><a href="{% url "blog:article" article.category.id %}" title="查看分类"><i class="el-th-list"></i>{{ article.category.name }}</a></li>
</ul> </ul>
</div> </div>
</li> </li>
@ -54,7 +54,6 @@
</ul> </ul>
</div> </div>
<ul> <ul>
<li {% if current_page == 1 %}class="active"{% endif %}><a href="?page=1">首页</a></li> <li {% if current_page == 1 %}class="active"{% endif %}><a href="?page=1">首页</a></li>
<li {% if current_page >= 2 %} {% else %}class="active"{% endif %}><a href="?page={{ current_page|add:-1 }}">上一页</a></li> <li {% if current_page >= 2 %} {% else %}class="active"{% endif %}><a href="?page={{ current_page|add:-1 }}">上一页</a></li>
<li {% if current_page < last_page %} {% else %}class="active"{% endif %}><a href="?page={{ current_page|add:1 }}">下一页</a></li> <li {% if current_page < last_page %} {% else %}class="active"{% endif %}><a href="?page={{ current_page|add:1 }}">下一页</a></li>

View File

@ -66,14 +66,14 @@
<!--=========右侧开始==========--> <!--=========右侧开始==========-->
{% include "blog/right.html" %} {% include "right.html" %}
<!--=========END右侧==========--> <!--=========END右侧==========-->
</div> </div>
<!--主题框架结束--> <!--主题框架结束-->
<!---底部开始--> <!---底部开始-->
{% include "blog/footer.html" %} {% include "footer.html" %}
<!---返回顶部--> <!---返回顶部-->
<!---END 底部开始--> <!---END 底部开始-->

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% load custom_filter %} {% load custom_filter %}
{% block title %} {% block title %}
@ -7,7 +7,7 @@
{% block meta %} {% block meta %}
<meta name="keywords" <meta name="keywords"
content="{{ article.title }},{% for tag in article.tag.all %}{{ tag }},{% endfor %}{{ article.category }}"/> content="{{ article.title }},{% for tag in article.tag.all %}{{ tag }},{% endfor %}{{ article.category.name }}"/>
<meta name="description" content="{{ article.digest|safe }}"/> <meta name="description" content="{{ article.digest|safe }}"/>
{% endblock %} {% endblock %}
@ -34,12 +34,12 @@
<h3 class="arc-title index-title">{{ article.title }} </h3> <h3 class="arc-title index-title">{{ article.title }} </h3>
<div class="post-line bg-color"> <div class="post-line bg-color">
<ul> <ul>
<li><a title="{{ article.author }}发表于{{ article.date_time }}"><i class="el-time"></i> <li><a title="{{ article.author }}发表于{{ article.edit_time }}"><i class="el-time"></i>
<time>{{ article.date_time }}</time> <time>{{ article.edit_time }}</time>
</a></li> </a></li>
<li><a href="#"><i class="el-user"></i>{{ article.author }}</a></li> <li><a href="#"><i class="el-user"></i>{{ article.author }}</a></li>
<li><a href="#Coon" title="转到评论"><i class="el-comment"></i>{{ article.comment }}条</a></li> <li><a href="#Coon" title="转到评论"><i class="el-comment"></i>{{ article.conment_nums }}条</a></li>
<li><a title="已有 {{ article.view }} 次浏览"><i class="el-eye-open"></i>{{ article.view }}</a></li> <li><a title="已有 {{ article.read_nums }} 次浏览"><i class="el-eye-open"></i>{{ article.read_nums }}</a></li>
</ul> </ul>
</div> </div>
@ -92,9 +92,9 @@
<div class="article_tag"> <div class="article_tag">
<ul> <ul>
<li><a href="{% url "blog:article" pk=article.category_id %}" <li><a href="{% url "blog:article" pk=article.category_id %}"
title="归类:{{ article.category }}">{{ article.category }}</a></li> title="归类:{{ article.category.name }}">{{ article.category.name }}</a></li>
{% for tag in article.tag.all %} {% for tag in article.tag.all %}
<li><a href="{% url "blog:tag" name=tag.tag_name %}" <li><a href="{% url "blog:tag" tag.id %}"
title="标签:{{ tag.tag_name }} ">{{ tag.tag_name }}</a>&nbsp;</li> title="标签:{{ tag.tag_name }} ">{{ tag.tag_name }}</a>&nbsp;</li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -107,12 +107,11 @@
</article> </article>
<!--评论表单--> <!--评论表单-->
{% include "blog/message.html" %} {% include "message.html" %}
<script type="text/javascript" charset="utf-8" src="https://changyan.itc.cn/js/lib/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="https://changyan.itc.cn/js/lib/jquery.js"></script>
<script type="text/javascript" charset="utf-8" <script type="text/javascript" charset="utf-8"
src="https://changyan.sohu.com/js/changyan.labs.https.js?appid=cyt6A5N47"></script> src="https://changyan.sohu.com/js/changyan.labs.https.js?appid=cytzXhLuB"></script>
</div> </div>

View File

@ -1,9 +1,9 @@
<footer> <footer>
<!--底部导航--> <!--底部导航-->
<div class="foot-nav"> <div class="foot-nav">
<div class="copy-right"><span>CopyRight &#169; 2015-2016 j_hao104's博客 &#160;&#160;&#160; Design by j_hao104</span></div> <div class="copy-right"><span>CopyRight &#169; 2018-2019 博客 &#160;&#160;&#160; Design by mylanbitou</span></div>
<div class="license bottom-nav"> <div class="license bottom-nav">
<a href="http://www.miitbeian.gov.cn">@2017 spiderpy.cn ICP备17012574号-1</a></span> <a href="http://www.miitbeian.gov.cn">@2017 spiderpy.cn ICP备17012574号-1</a></span>
</div> </div>
</div> </div>
<div id="toTop">Back to Top</div> <div id="toTop">Back to Top</div>

View File

@ -24,13 +24,13 @@
<ul class="orange-text"> <ul class="orange-text">
<li class=""><a href="{% url "blog:index" %}">首页</a></li> <li class=""><a href="{% url "blog:index" %}">首页</a></li>
<li><a href="{% url "blog:about" %}">关于</a></li> <li><a href="{% url "blog:about" %}">关于</a></li>
<li><a href="{% url "blog:article" pk=0 %}">博客</a></li> <li><a href="{% url "blog:article" 0 %}">博客</a></li>
<li class='drop'> <li class='drop'>
<a href="JavaScript:;">分类<i class='el-chevron-down'></i></a> <a href="JavaScript:;">分类<i class='el-chevron-down'></i></a>
<div class="drop-nav orange-text "> <div class="drop-nav orange-text ">
<ul> <ul>
{% for category in category_list %} {% for category in category_list %}
<li><a href="{% url "blog:article" pk=category.pk %}">{{ category.name }}</a></li> <li><a href="{% url "blog:article" category.id %}">{{ category.name }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
@ -62,7 +62,7 @@
<a href="javascrip:;">分类</a> <a href="javascrip:;">分类</a>
<ul class="mob-dropmenu"> <ul class="mob-dropmenu">
{% for category in category_list %} {% for category in category_list %}
<li><a href="{% url "blog:article" pk=category.pk %}">{{ category.name }}</a></li> <li><a href="{% url "blog:article" category.id %}">{{ category.name }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
@ -42,22 +42,22 @@
{% for article in article_list %} {% for article in article_list %}
<li id="New"> <li id="New">
<div class="arcimg"> <div class="arcimg">
<img src="{{ article.picture }}" alt="{{ article.title }}" title="{{ article.title }}"/> <img src="{{ MEDIA_URL }}{{ article.image }}" alt="{{ article.title }}" title="{{ article.title }}"/>
</div> </div>
<div class="arc-right"> <div class="arc-right">
<h4 class="blue-text"><a href="{% url "blog:detail" pk=article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4> <h4 class="blue-text"><a href="{% url "blog:detail" pk=article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4>
<p>{{ article.digest }}</p> <p>{{ article.digest }}</p>
<ul> <ul>
<li><a title="{{ article.author }}{{ article.date_time }} 发表 "><i <li><a title="{{ article.author }}&ensp;{{ article.edit_time }} 发表 ">
class="el-time"></i> {{ article.date_time }}</a></li> <i class="el-time"></i> {{ article.edit_time }}</a></li>
<li><a href="#" title="作者: {{ article.author }}"><i <li><a href="#" title="作者: {{ article.author }}"><i
class="el-user"></i>{{ article.author }}</a></li> class="el-user"></i>{{ article.author }}</a></li>
<li><a href="#" title="已有 {{ article.comment }} 条评论"><i <li><a href="#" title="已有 {{ article.conment_nums }} 条评论"><i
class="el-comment"> {{ article.comment }}</i></a> class="el-comment"> {{ article.conment_nums }}</i></a>
</li> </li>
<li><a title="已有 {{ article.view }} 次浏览"><i class="el-eye-open"></i>{{ article.view }} <li><a title="已有 {{ article.read_nums }} 次浏览"><i class="el-eye-open"></i>{{ article.read_nums }}
</a></li> </a></li>
<li><a href="#" title="查看分类"><i class="el-th-list"></i>{{ article.category }}</a></li> <li><a href="#" title="查看分类"><i class="el-th-list"></i>{{ article.category.name }}</a></li>
</ul> </ul>
</div> </div>
</li> </li>
@ -75,22 +75,23 @@
{% for article in article_rank %} {% for article in article_rank %}
<li id="Hot"> <li id="Hot">
<div class="arcimg"> <div class="arcimg">
<img src="{{ article.picture }}" alt="{{ article.title }}" title="{{ article.title }}"/> <img src="{{ MEDIA_URL }}{{ article.image }}" alt="{{ article.title }}" title="{{ article.title }}"/>
</div> </div>
<div class="arc-right"> <div class="arc-right">
<h4 class="blue-text"><a href="{% url "blog:detail" pk=article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4> <h4 class="blue-text">
<a href="{% url "blog:detail" pk=article.id %}" title="{{ article.title }}">{{ article.title }}</a></h4>
<p>{{ article.digest }}</p> <p>{{ article.digest }}</p>
<ul> <ul>
<li><a title="{{ article.author }}{{ article.date_time }} 发表 "><i <li><a title="{{ article.author }}{{ article.edit_time }} 发表 "><i
class="el-time"></i> {{ article.date_time }}</a></li> class="el-time"></i> {{ article.edit_time }}</a></li>
<li><a href="#" title="作者: {{ article.author }}"><i <li><a href="#" title="作者: {{ article.author }}"><i
class="el-user"></i>{{ article.author }}</a></li> class="el-user"></i>{{ article.author }}</a></li>
<li><a href="#" title="已有 {{ article.comment }} 条评论"><i <li><a href="#" title="已有 {{ article.conment_nums }} 条评论"><i
class="el-comment"> {{ article.comment }}</i></a> class="el-comment"> {{ article.conment_nums }}</i></a>
</li> </li>
<li><a title="已有 {{ article.view }} 次浏览"><i class="el-eye-open"></i>{{ article.view }} <li><a title="已有 {{ article.read_nums }} 次浏览"><i class="el-eye-open"></i>{{ article.read_nums }}
</a></li> </a></li>
<li><a href="#" title="查看分类"><i class="el-th-list"></i>{{ article.category }}</a></li> <li><a href="#" title="查看分类"><i class="el-th-list"></i>{{ article.category.name }}</a></li>
</ul> </ul>
</div> </div>
</li> </li>

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% block title %} {% block title %}
<title>链接 - 烂笔头 </title> <title>链接 - 烂笔头 </title>

View File

@ -1,4 +1,4 @@
{% extends "blog/base.html" %} {% extends "base.html" %}
{% block title %} {% block title %}
<title>留言板 - 烂笔头</title> <title>留言板 - 烂笔头</title>
@ -8,7 +8,7 @@
<section class="mysection"> <section class="mysection">
{% include "blog/message.html" %} {% include "message.html" %}
</section> </section>
{% endblock %} {% endblock %}

Some files were not shown because too many files have changed in this diff Show More