前言

Django 是使用 Python 编写的一个开源 Web 框架,可以用它来快速搭建一个高性能的网站。

Django makes it easier to build better Web apps more quickly and with less code.

Django 让你以更快的速度、更少的代码、更轻松的方式搭建更好的 Web 应用。

本教程将带你使用 Django 快速开发属于自己的博客网站。

教程特点

免费、中文、零基础,完整的项目,基于最新版 Django 1.10 和 Python 3.5。带你从零开始一步步开发属于自己的博客网站,帮助你以最快的速度掌握 Django 开发的技巧。

谁适合这个教程

本教程主要面向零基础的 Django 新人。

只需要一点点 Python 语言的基础,就可以顺利阅读本教程。

如果你已有一定的 Django 开发经验,也能从本教程中学到更多的 Django 开发技巧。

在线预览

点击预览:Django 博客项目在线预览

博客项目预览

资源列表

项目完整代码托管在 GitHub:Django Blog Tutorial

博客前端模板托管在 GitHub:博客模板

获取帮助

在项目开发中遇到问题,通过以下方式即时获取帮助。

  • 在下方评论区留言。
  • 将问题的详细描述通过邮件发送至 djangostudyteam@163.com,一般会在 24 小时内答复。
  • Django 学习小组 QQ 群,扫描下方二维码加入。

Django 学习小组 QQ 群二维码

-- EOF --


49 条评论 / 34 人参与
wangganggithub123



  • 回复

vimtutor

博主你好,感谢你提供了这么好的教程。小女子个人也维护了一个网站 Vim教程网,专注于写Vim相关的内容。不知道是否可以与你交换友链。多谢多谢~ 

盼复。 

by ayawaw


vimtutor

博主你好,感谢你提供了这么好的教程。小女子个人也维护了一个网站 Vim教程网,专注于写Vim相关的内容。不知道是否可以与你交换友链。多谢多谢~

盼复。

ayawaw


vimtutor vimtutor

:(  链接地址写错了,是 https://vim.ink。sorry 


追梦人物 [博主] vimtutor

哇哇,不错呀!当然可以,请先把我的博客 www.zmrenwu.com 加入你的网站首页,然后加我微信验明女子身份      ( • ̀ω•́ )✧


vimtutor 追梦人物 [博主]

首页已经加友链了哈,嘿嘿。真的需要加微信验证吗,哈哈哈。微信号不太好直接公开到这里,有没有办法私信呢~

  • 回复

Kingoldman



口可口可可乐杯

请问一下在运行时遇到这个问题怎么解决呢

ImportError: No module named 'covers'

万分感谢


asimovezh

gggg


DavidLin3

It's a test...


Huangbo


hualibukenni

博主,这个提示是指我的本地仓库与远程仓库没合并还是什么原因?

[www.lhyaiwh.top] out: error: Your local changes to the following files would be overwritten by merge:[www.lhyaiwh.top] out: templates/base.html 

 [www.lhyaiwh.top] out: Please, commit your changes or stash them before you can merge.

 [www.lhyaiwh.top] out: Aborting 

 [www.lhyaiwh.top] out: Fatal error: run() received nonzero return code 1 while executing! 

 Requested: cd /home/liuhanyu/sites/demo.lhyaiwh.top/blogproject && git pullExecuted: /bin/bash -l -c "cd /home/liuhanyu/sites/demo.lhyaiwh.top/blogproject && git pull"

 Aborting.Disconnecting from www.lhyaiwh.top:29490... done.


追梦人物 [博主] hualibukenni

嗯呐 合并有冲突,先本地解决


Butonix

sadasdasd


iheyou
window.addEventListener('load', function() {
console.log('window loaded');
});

zeyuan huang

test


ArsistPdtion zeyuan huang

test


mar-heaven

https://www.zmrenwu.com/post/50/    post/100/的时候没有内容,建议停留在当前页面,不做跳转。


追梦人物 [博主] mar-heaven

返回 404 是标准做法。


Kaijien

测试


Johnny Z Kaijien

测试

测试

测试测试


测试








Johnny Z Johnny Z
123
456
789

zjw

多少度


不言寂寞666

博主,到最后一步出问题了,这是啥问题啊?

(django_env) C:\Users\Administrator\Desktop\mypro\blogproject>python manage.py rebuild_indexTraceback (most recent call last):  File "manage.py", line 15, in <module>    execute_from_command_line(sys.argv)  File "C:\Users\Administrator\django_env\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line    utility.execute()  File "C:\Users\Administrator\django_env\lib\site-packages\django\core\management\__init__.py", line 365, in execute    self.fetch_command(subcommand).run_from_argv(self.argv)  File "C:\Users\Administrator\django_env\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv    self.execute(*args, **cmd_options)  File "C:\Users\Administrator\django_env\lib\site-packages\django\core\management\base.py", line 335, in execute    output = self.handle(*args, **options)  File "C:\Users\Administrator\django_env\lib\site-packages\haystack\management\commands\rebuild_index.py", line 36, in handle    call_command('clear_index', **options)  File "C:\Users\Administrator\django_env\lib\site-packages\django\core\management\__init__.py", line 133, in call_command    ', '.join(sorted(valid_options)),TypeError: Unknown option(s) for clear_index command: batchsize, workers. Valid options are: commit, help, interactive, no_color, nocommit, noinput, pythonpath, settings, skip_checks, stderr, stdout, traceback, using, verbosity, version.


薛鹏飞 不言寂寞666

哥们,你的这个问题解决了吗,我也遇到了同样的问题  不知道如何解决


曼老三家

你好,我想实现类似于你的这个博客的“归档”功能,归档是一个单独页面,按照年/月进行归档,并且在月的归档下显示当月所有文章的标题,但是我目前没有了思路,能够按照年/月来归档,可是不能够取出当月每篇文章的数据,无法显示文章标题。

# views.py
def archives(request):
dates = Article.objects.dates("created_time", "month", order="DESC")
    context = {"dates": dates}
return render(request, "blog/lw-timeline.html", context)


# archive.html
<div class="am-u-sm-12">
  <h1 class="blog-text-center">-- 归档 --</h1>
  {% regroup dates by year as date_by_year %}
    {% for date_by_month in date_by_year %}
      <div class="timeline-year">
        <h1>{{ date_by_month.grouper }}</h1>
        <hr>
        <ul>
         {% for date_month in date_by_month.list %}
            <h3>{{ date_month | date:"m"}} 月</h3>
            <hr>
            <li>
              <span class="am-u-sm-4 am-u-md-2 timeline-span">文章标题</span>
            </li>
         {% endfor %}
        </ul>
        <br>
     </div>
  {% endfor %}
  <hr>
</div>

最终想实现类似:https://www.zmrenwu.com/archives/ 这个页面效果。
还是有时间的话解答下,多谢!


追梦人物 [博主] 曼老三家

这篇文章就说啦:https://www.zmrenwu.com/post/54/


曼老三家 追梦人物 [博主]

多谢,问题解决了。


未懂世故幻想世态

哈哈感觉这个前言有廖老师的风格,刚学django,学到分页器那想解决数据量大的时候页码的问题,看到你的博客文章,支持你一下!


liyang

测试用


安羽说_要幸福

请问可以转载吗? 会注明出处。


SeaTimeMoon

发错误位置了。


SeaTimeMoon

Error during template rendering In template D:\PythonWork\Django_Blog\templates\blog\detail.html, error at line 117 no such column: comments_comment.text

反复检查还是如此,说是detail.html有错。

  {% for comment in comment_list %}


皮皮欧呢

博主,为什么我的总是dial tcp  公IP:80: i/o timeout


小糖豆和奇奇

测试


唐波

目前正在学习Django,感谢博主分享。


白羊木鱼水星

<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>

这里报如下这个错误

django.urls.exceptions.NoReverseMatch: Reverse for 'detail' with keyword arguments '{'pk': 2}' not found. 1 pattern(s) tried: ['$post/(?P<pk>[0-9]+)/$']

请问这个错误是没是原因啊


Alic-yuan
显得要高大上些

Annihilater Alic-yuan

???


Annihilater Annihilater

测试用,不用回复


切了特空
哇 改版了!

追梦人物 [博主] 切了特空
是呀!换了套 UI

刘智彬会灰
试试看日期是怎么回事

追梦人物 [博主] 刘智彬会灰
什么日期哦?

刘智彬会灰 追梦人物 [博主]
没什么,只是评论不显示确切日期,我的强迫症有点犯了

sanyuwen
UnicodeDecodeError at /blog/
'utf-8' codec can't decode byte 0xcd in position 2616: invalid continuation byte

请问,我按照你的教程操作,runserver的时候,报错在这一行:
{% extends "base.html" %}

django版本和你一样,python 3.6

追梦人物 [博主] sanyuwen
可能是 base.html 编码的问题,尝试重新保存该文件为 utf-8 的编码格式。

sanyuwen 追梦人物 [博主]
谢谢!已经解决。
我最开始也是这么想的,重新改成utf-8没解决。
后来仔细检查文件,原来在某处莫名其妙有一个特殊字符,删掉就可以了。。

william302 sanyuwen

测试