《跟老齐学Python:Django实战》是以Python为基础进行Web应用开发的进阶读物。书中以一个实例项目为主线,在实践中边学边做,理论联系实际。每节都配有思维导图,使读者对项目需求一目了然;每章都有知识点和文档导读,引导读者“知其所以然”。相信认真阅读本书的读者,不仅能够得到“鱼”,更能得到“渔”,从而具备独立开发的能力。《跟老齐学Python:Django实战》适合已经具有Python基础技能、进行Web应用开发的读者。如有此意愿,但尚缺乏Python基础技能者,推荐阅读《跟老齐学Python:轻松入门》。
专注于实战,以项目为主线,帮助读者轻松掌握Python应用。
轻松幽默,毫无做作晦涩之感,让编程不枯燥,不乏味。
指导读者理解Python编程思想,领略Python魅力,授之以渔。
江湖名号:老齐。Github名称是qiwsir,个人网页www.itdiffer.com。喜欢Python语言,不仅将它用于工作中,还愿意帮助更多人学习Python。
是的,你应该开始阅读本书了。
如果读者已经通过《跟老齐学Python:轻松入门》这本书完成了Python入门,那么接下来就要用Python做一些实际项目了,做什么呢?可以做的东西真不少,比如数据统计、爬虫、机器学习、人工智能等,当然还有不可或缺的Web开发。
本书就是要带领读者:
学习Django;
完成一个项目;
边做项目边学知识。
因此,本书按照完成一个项目从易到难的顺序,以项目为主线逐渐展开对Django的学习。Django是一种在Web开发中应用非常广泛的开发框架,它能够让程序员非常快捷地建设一个网站,并且支持网站开发中各种复杂的业务。如果需要快速建设一个网站,并且希望后期还能通过迭代开发实现网站功能和性能的提升,那么Django是一个不错的选择。
Django的官方网站中有不少内容完备的文档,当然,这种完备不是针对初学者而言的。对于初学者来说,也许官方文档太简要了,因此本书的作用就是将初学者领入Django开发的大门,并引导读者熟悉使用Django官方文档。当读者阅读并练习完本书的项目后,就能够使用官方文档进行开发了,本书的目的也就达到了。
本书从始至终贯穿着一个项目实践,将开发实战中常用的Django知识串联起来,因此它不像课本那样按部就班地把每个知识点都罗列出来,而是根据项目需要,将技能融汇在实战之中。此外,如果仅从开发实践的角度学习Django,难免会出现就问题而解决问题的现象,缺少系统和深入的学习。为此,每节中均配有“知识点”,用以扩展或者系统化有关知识,特别是在“文档导读”中会向读者提供有关网络资料,试图让读者知其然并知其所以然。
在项目进行中,读者可能会遇到暂时无法理解的部分,不要纠结于一时之惑,而要跟着项目继续进行下去,或许到后面就能理解前面的内容了——“发展是硬道理”。
如果正在阅读本书的你是Web开发的初学者,此前没有做过任何网站开发,那么笔者特别建议遵循如下学习方法。
严格按照本书要求,将所有代码都认真敲过。不要复制代码(本书提供的源代码,仅仅是一个参考),要自己一个字母一个字母地敲进去。
将自己的调试结果与本书所示结果进行对照,看看是否实现了预期的功能。
在调试不能通过时,首先要认真检查自己的代码,包括但不限于拼写问题、缩进问题等,若还不能解决,可通过Google搜索该异常(错误),请相信,你的错误别人也同样遇到过。
本书支持网站www.itdiffer.com和QQ群(26913719)也是读者学习的助手。
本书提示读者阅读的官方文档,一定要认真阅读。
本书实际上是一个Django项目,项目中包含了多个应用。如果读者按照本书的要求,第一遍就实现了应用的功能,那只能说明本书描述无误且你的阅读能力尚可,并不代表你已经掌握了什么。只有当你把刚刚调试通过的应用删除,然后完全靠自己的记忆和理解,同样实现了该应用的功能,才能说明你掌握了相关知识技能。再次强调,要理解相关内容,就必须多重复几遍。
因为本书是以“项目为主线”的,所以不会面面俱到地将Django的所有内容介绍一遍,而是根据项目的功能需要,选择性地使用和介绍有关内容。对于具体功能的实现,书中所给出的代码也非唯一写法,读者可以使用其他更好的方式实现。
在实际的Web开发项目中,除使用Django框架外,还会用到HTML、CSS、JavaScript等知识,从而做出一个看起来有点设计感的页面。虽然说“人不可貌相”,但使用Django做出一个漂亮的前端,还是能够让人感觉很舒服的。因此,书中也涉及一些前端内容,读者在阅读时,如果缺少相关知识,可以实时补充。当然,前端知识并不是学习本书所必备的,因为凭借读者的聪明才智和无所不包的网络,掌握应付本书所需要的前端知识是非常容易的。
读者可以在GitHub上(https://github.com/qiwsir/DjangoPracticeProject)获得本书的所有代码,这些代码是最终结果,希望不会给读者的学习带来不便。
感谢为本书的面市提供帮助的编辑们,感谢我的妻子在本书编写过程中提供的支持。
齐 伟
2017年8月
请问在18页中 from .models import BlogArticles此处运行出现错误
ModuleNotFoundError: No module named ‘main.models’; ‘main‘ is not a package
要怎么解决啊
作者及各位书友,大家好。我遇到一个问题,请求帮助。
我在学到书中第5页时,运行命令
$python3.6 manage.py runserver
出现错误,有一堆提示,最后一句是:
django.db.utils.OperationalError: unable to open database file
请问怎么处理?
我发现了一个小问题,就是样式表链接https://cdn.bootcss.com/bootstrap/3.3.7/bootstrap.min.css/
https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js
连接不上.
好像失效了。具体位置在次数 page26~27。望给个新的链接
from django.contrib.auth.models import User
这句有问题,《Django实战》第13页的。
(Django版本是2.1的,前面两句没问题)
刚刚创建项目就执行python manage.py makemigrations就报错:
author = models.ForeignKey(User, relatedname=”blogposts”)
TypeError: __init() missing 1 required positional argument: ‘on_delete’