博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django+Bootstrap+Mysql 搭建个人博客(二)
阅读量:5903 次
发布时间:2019-06-19

本文共 4322 字,大约阅读时间需要 14 分钟。

2.1.博客首页设计

(1)settings.py

MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace("//","/")MEDIA_URL = '/media/'

(2)website/urls

添加图片的url

from django.conf.urls import url,includefrom django.contrib import adminfrom django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^blog/',include('blog.urls') ),] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT )        #添加图片的url

(3)blog/models.py

添加两个方法

class Entry(models.Model):    .    .    .     def get_absolute_url(self):        #获取当前博客详情页的url        return reverse("blog:blog_detail",kwargs={
"blog_id":self.id}) #app名字,详情页url的别名,参数是当前博客的id def increase_visiting(self): #访问量加1 self.visiting += 1 self.save(update_fields=['visiting']) #只保存某个字段

(4)views.py

from django.shortcuts import renderfrom . import modelsdef index(request):    entries = models.Entry.objects.all()    return render(request,'blog/index.html',locals())def detail(request,blog_id):    entry = models.Entry.objects.get(id=blog_id)    entry.increase_visiting()    return render(request,'blog/detail.html',locals())

(5)index.py

{% extends 'blog/base.html' %}{% block title %}博客首页{% endblock %}{% block content %}    
{% for entry in entries %}

{
{ entry.title }}

{% if entry.img %}
{% endif %} {% if entry.abstract %}

{

{ entry.abstract }}

{% else %}

{

{ entry.body|truncatechars:180 }}

{% endif %}

作者:{

{ entry.author }}     发布时间:{
{ entry.created_time }}
    阅读数:{
{ entry.visiting }}

{% endfor %}
{% endblock %}

(6)detail.html

{% extends 'blog/base.html' %}{% block title %}博客详情页{% endblock %}{% block content %}    博客{
{ blog_id }}的详情页{% endblock %}

 

2.2.博客详情页面

detail.html

{% extends 'blog/base.html' %}{% block title %}博客详情页{% endblock %}{% block content %}    

{
{ entry.title }}

{

{ entry.author }}     {
{ entry.created_time|date:'Y年m月d日' }}     分类: {% for category in entry.category.all %}   {
{ category.name }}
{% endfor %}     标签: {% for tag in entry.tags.all %}   {
{ tag.name }}
{% endfor %}     浏览量:   {
{ entry.visiting }} {% if entry.img %} {% endif %}


{

{ entry.body }}

{% endblock %}

2.3.Markdown排版、语法高亮和生成目录

(1)安装模块

pip install markdownpip install pygments

(2)views.py

import markdown,pygmentsdef detail(request,blog_id):    entry = models.Entry.objects.get(id=blog_id)    md = markdown.Markdown(extensions=[        'markdown.extensions.extra',        'markdown.extensions.codehilite',        'markdown.extensions.toc',    ])    entry.body = md.convert(entry.body)    entry.toc = md.toc    entry.increase_visiting()    return render(request,'blog/detail.html',locals())

(3)detail.html

把github.css放到blog/css里面,detail.html引用样式

{% extends 'blog/base.html' %}{% load staticfiles %}{% block title %}博客详情页{% endblock %}{% block css %}    
{% endblock %}

标签和正文都加salf

 

 (4)后台添加博客

Markdown语法测试篇

## 1.python语言介绍   编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和弱类型定义语言 - 编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成对应的可执行代码,这个过程就是编译(Compile),而负责编译的程序就被称为编译器(Compiler) - 通常我们所说的动态语言,静态语言是指动态类型语言和静态类型语言 ## 2.python的优缺点 - 优点:简单、开发效率高、高级语言、可移植性、可扩展性、可嵌入性 - 缺点:速度慢,但是相对的、代码不能加密、线程不能利用多CPU问题## 3.高阶函数```pythondef func():    print('in the func')    return foo()def foo():    print('in the foo()')    return 666res = func()print(res)```

前端显示效果:

 

转载地址:http://fmkpx.baihongyu.com/

你可能感兴趣的文章
Hack with python(一)
查看>>
Silverlight实用系列:41.Silverlight中调用麦克风模拟录音机设备,存储为WAV音频
查看>>
Silverlight 游戏开发小技巧:传送点特效制作
查看>>
自动为照片添加日期并且分类的小程序
查看>>
邀您参与阿里云MaxCompute2.0最佳实践征文活动
查看>>
Exchange Server 2007通讯薄同步问题
查看>>
AAA之802.1x认证详解(二)
查看>>
智能穿戴+人工智能,华米科技向大健康领域进军
查看>>
Perl的File::Temp模块简约说明
查看>>
TCP/IP四层模型和OSI七层模型
查看>>
化零为整WCF(10) - 实例模型(InstanceContextMode)
查看>>
jdk1.5和jdk1.6对于@override支持的区别
查看>>
使用Telnet测试基本POP3服务
查看>>
Flink SQL 功能解密系列 —— 维表 JOIN 与异步优化
查看>>
Codeforces Round #442 (Div. 2) A B
查看>>
封装一个日期时间选择器
查看>>
极值问题(acms)
查看>>
swift UI专项训练8 展示数据
查看>>
openstacks
查看>>
PHP5下单独编译php模块
查看>>