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 .
这次在项目名称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.
由提示信息可知:通过http://127.0.0.1:8000/访问所创建的项目;按Ctrl+C组合键结束当前服务。
打开浏览器,在地址栏中输入http://127.0.0.1:8000或者http://localhost:8000,就会看到如图1-5所示的结果。
图1-5 项目默认首页
祝贺!祝贺!热烈祝贺!
已经看到了第一个网页,虽然它很简陋,但未来它将被不断优化,成为一个优秀的网站,读者会用它改变世界——程序员,天生就被赋予了改变世界的使命。某天某布斯找到你,“我现在只差一个程序员了”。为了改变世界,继续学习吧!
网站的成长方式就是不断地增加功能。在Django中,人们将完成某个或者某几个功能的集合称为一个“应用”,所以一个功能比较多的网站常常是由多个“应用”组成的,后面我们可以把注意力集中在一个个“应用”上。