没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
227页
从现在开始,请读者随我一起做一个项目,这个项目的名称叫作“多用户内容发布系统”。 因为很多读者是来学习的,所以还要本着“循序渐进”“深入浅出”的原则来做这个项目——这当然不是工程项目开发的原则,这是教学的原则。 本项目从博客开始。 博客,现在已经有人把它看作历史文物了,因为互联网的迅猛发展,10 年前的事物就算古 董了。尽管如此,博客依然可以作为一个学习的样本。本章将通过一个单用户的博客系统的开发,初步说明利用 Django 开发网站的基本步骤和网站的基本组成。当然,这仅仅是起步,并不意味着学完本章就理解 Django 了。“不积跬步,无以至千里”,最后的复杂系统也是由一个个简单的小功能堆砌起来的。
资源推荐
资源详情
资源评论
·1·
简单的博客系统
从现在开始,请读者随我一起做一个项目,这个项目的名称叫作“多用户内容发布系统”。
因为很多读者是来学习的,所以还要本着“循序渐进”“深入浅出”的原则来做这个项目——这
当然不是工程项目开发的原则,这是教学的原则。
本项目从博客开始。
博客,现在已经有人把它看作历史文物了,因为互联网的迅猛发展,10 年前的事物就算古
董了。尽管如此,博客依然可以作为一个学习的样本。本章将通过一个单用户的博客系统的开
发,初步说明利用 Django 开发网站的基本步骤和网站的基本组成。当然,这仅仅是起步,并不
意味着学完本章就理解 Django 了。“不积跬步,无以至千里”,最后的复杂系统也是由一个个简
单的小功能堆砌起来的。
1.1 Django 起步
Django 这个词对一些人来说或许并不陌生,有一部荣获第 85 届奥斯卡金像奖的影片叫作
Django Unchained,中文名被翻译为《被解救的姜戈》,这或许是 Django 首度被翻译为中文。但
是,作为网站开发框架的 Django 与这部电影没有任何关系。
Django 的起步内容如图 1-1 所示。
1.1.1 Django 简介
一般认为 Django 开发框架(简称 Django)诞生的时间是 2003 年的金秋时节。此时千年古
城苏州正桂花飘香,而大洋彼岸的美国有两位程序员在使用后来被冠名为 Django 的框架做网站
开发,这是全世界首次使用。让我们感谢这两位程序员,他们是 Adrian Holovaty 和 Simon Willison。
2008 年虽然遇到了金融危机,但依然挡不住技术的进步,Django 有了自己的 DSF(Django
Software Foundation),后来 Django 的发展就由这个基金会来主导了。
多用户内容发布系统
·2·
图 1-1 知识技能导图
对于 Django 的评价,借用李清照的《鹧鸪天·桂花》来表达,我认为是非常恰当的。
暗淡轻黄体性柔。情疏迹远只香留。何须浅碧深红色,自是花中第一流。
梅定妒,菊应羞。画栏开处冠中秋。骚人可煞无情思,何事当年不见收。
“自是花中第一流”,不仅仅是现在,未来依然蓬勃发展。在 Django 官方网站披露的信息中,
可以看到其发展蓝图,如图 1-2 所示。
图 1-2 Django 各版本计划
关于 Django 的特点,用官方网站(https://www.djangoproject.com)上的大标题就可以概括
了:“Django makes it easier to build better Web apps more quickly and with less code”。展开来说,
就是如下几点。
第 1 章 简单的博客系统
·3·
容易上手,开发速度快。
囊括了网站开发中的用户管理、内容管理、网站地图、RSS 等常用的众多插件。
安全性强,比如 Django 默认解决了 SQL 注入、跨站攻击等问题。
应用广泛,类型多样化。使用 Django 开发的网站包括各类在线服务网站、社会组织和
政府机构网站等,其类型包括但不限于管理系统、社交网站、计算平台等。
就开发网站的框架而言,除 Django 外,在 Python 领域还有 Tornado、Flask 等,它们各有
各的特点,但 Django 的应用范围最广。
接下来就开始 Django 之旅——虽有解救姜戈的惊心动魄,但无生命之忧。
1.1.2 安装 Django
在一般情况下,读者所用的计算机操作系统上没有 Django,需要自己安装。
Django 是以 Python 为语言环境的,所以要先保证计算机上已经安装了 Python。读者如果对
Python 知之甚少,可以参阅《跟老齐学 Python:轻松入门》,这本书介绍了 Python 的基础知识。
Django 适用于 Python 3 和 Python 2.7 两种版本,如果你是一个新秀,并不是为了承接基于
Python 2.7 的旧项目开发,可以直接用 Python 3 进行 Django 的学习和开发。
从官方网站可以获悉,Django 项目团队正在不断发展 Django 的版本(见图 1-2),本书 第 1
版在 2017 年刚刚发行的时候,使用的是 Django 1.10。2018 年,Django 已经演进到 Django 2.x
了。Django 2.x 相对于 Django 1.x 有部分变化,因此本书再次修订,转而采用 Django 2.x。读者
在阅读的时候,可能 Django 的版本已经高于本书所使用的版本了,但是,影响不大,因为都是
Django 2.x 的范畴,小版本号的修改,仅意味着些许的优化。使用本书进行学习的时候,可以
安装使用最新版的 Django,不用在意小版本号的更改。
安装 Django 的最简单方法是输入以下命令(关于 pip,请参阅《跟老齐学 Python:轻松入
门》有关章节说明):
$ pip3 install Django
安装好 Django 之后,可以先进入 Python 交互模式中,查看一下所安装的 Django 版本。
$ python3
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 03:03:55)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.get_version()) #打印出当前 Django 的版本号
2.1.4
上面的安装方法是一种简单而且常用的方法,除这种方法外,还可以下载 Django 源码进行
安装:
git clone https://github.com/django/django.git
如果系统中没有安装 Git,会提示用户安装。
这时,会在当前目录中看到一个名称为“django”的目录,里面是最新版本的 Django。
·4·
随后在当前目录中进行如下操作:
$ pip3 install -e ./django
安装完毕,系统会提示“Successfully installed Django”。
通过这种方法得到的必然是 Django 的最新版本,而且是正在开发中的最新版,尚未正式发
布——虽然如此,也是能够正常使用的,Django 的开发者不会把不能使用的代码发布出来。喜
欢尝试的读者可以用上面这种方式安装。
安装成功之后,在 Python 交互模式中可以查看当前 Django 版本,显示结果中包含“dev”
字样,说明我们使用的是开发版。
在一般情况下,推荐使用 pip install Django 的方法来安装,其原因就是笔者提倡的保守主义。
基础设施已经建好,下面就要创建项目了。
1.1.3 创建项目
Django 中的“项目”(project)可以看作一个专有名词,因为后面还有一个与之有关的名词
“应用”(application)。
所谓“项目”,可以理解为一个网站。
先规划好将项目创建在什么地方,比如,笔者放在如下的目录中:
Chees-MBP:mysite2 qiwsir$ pwd
/Users/qiwsir/Documents/Codes/DjangoPracticeProject/mysite2
在刚刚创建的 mysite2 目录中,创建一个 Django 项目:
Chees-MBP:mysite2 qiwsir$ django-admin startproject mysite
看一下这个目录,多了一个 mysite 子目录,mysite 就是这个项目的名称:
Chees-MBP:mysite2 qiwsir$ ls
mysite
mysite 子目录里面的内容,就是我们创建的项目内容,如图 1-3 所示。
图 1-3 mysite 的目录结构
这是创建项目的一种方法。
可以把刚才建立的项目删除,即删除./mysite2/mysite/目录,然后尝试另外一种创建项目的
方法,请读者注意观察两种方法的命令形式和结果。第二种创建项目的方法如下:
Chees-MBP:mysite2 qiwsir$ django-admin startproject mysite .
第 1 章 简单的博客系统
·5·
这次在项目名称 mysite 后面有一个空格,然后是一个句点(英文半角句号),如此创建项
目,旨在将项目内容放到当前目录(./mysite2/)中。创建项目之后,仔细观察目录结构,如图 1-4
所示,与图 1-3 所示的目录结构进行对比,从而找出两种方式的区别。
图 1-4 mysite2 中的项目目录结构
在所创建的项目目录中,有一个名称很特殊的文件__init__.py,熟悉 Python 的读者一定知
道,其所在目录因它的存在而变成了一个 Python 包(package)(关于包、模块的详细内容请参
阅《跟老齐学 Python:轻松入门》)。
此外,与 manage.py 在同一个级别上有一个目录 mysite。如果读者在创建项目时用其他的
名称代替 mysite,那么就会出现以该名称命名的目录。
至此,已经建立了一个项目,也就意味着已经有一个网站的基本框架了,虽然现在还不能
访问什么。
准备就绪,执行下述操作:
$ python3 manage.py runserver
在本书中,为了明确说明目录或者文件的位置,以“./”表示项目根目录,如图 1-4 所示的
目录结构,manage.py 文件在项目中的位置就是“./manage.py”;在子目录 mysite 中看到的 urls.py
文件,则用“./mysite/urls.py”路径表示。
在上述指令中使用了“python3”,是因为笔者的开发环境配置原因,读者如果在本地的开
发环境中以“python”指向了 Python3,也可以使用“python manage.py runserver”指令。
在执行上述指令后,如果一切正常,最终会看到如下的提示信息:
$ python3 manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 14 unapplied migration(s). Your project may not work properly until you apply
the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 11, 2018 - 03:25:15
Django version 2.1.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
剩余226页未读,继续阅读
资源评论
好知识传播者
- 粉丝: 496
- 资源: 4204
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功