1.8.1 使用内置指令创建项目
一个项目可以理解为一个网站,创建Django项目可以在命令提示符窗口输入创建指令完成。打开命令提示符窗口,将当前路径切换到D盘并输入项目创建指令:
C:\Users\000>d: D:\>django-admin startproject MyDjango
第一行指令是将当前路径切换到D盘;第二行指令是在D盘的路径下创建Django项目,指令中的MyDjango是项目名称,读者可自行命名。项目创建后,可以在D盘下看到新创建的文件夹MyDjango,在PyCharm下查看该项目的结构,如图1-10所示。
图1-10 项目目录结构
MyDjango项目中包含MyDjango文件夹和manage.py文件,而MyDjango文件夹又包含5个.py文件。项目的每个文件说明如下。
- manage.py:命令行工具,内置多种方式与项目进行交互。在命令提示符窗口下,将路径切换到MyDjango项目并输入python manage.py help,可以查看该工具的指令信息。
- __init__.py:初始化文件,一般情况下无须修改。
- asgi.py:用于启动异步通信服务,比如实现在线聊天等异步通信功能。
- settings.py:项目的配置文件,项目的所有功能都需要在该文件中进行配置,配置说明会在第2章详细讲述。
- urls.py:项目的路由设置,设置网站的具体网址内容。
- wsgi.py:全称为Python Web Server Gateway Interface,即Python服务器网关接口,是Python应用与Web服务器之间的接口,用于Django项目在服务器上的部署和上线,一般不需要修改。
从Django 3.0开始,新建的项目都会创建asgi.py文件,这是将异步通信服务纳入Django的内置功能。ASGI是异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP、HTTP2和WebSocket。
WSGI基于HTTP的模式,但它不支持WebSocket,而ASGI则是为了解决WSGI不支持当前Web开发的一些新的协议标准(比如WebSocket)。同时,ASGI不仅支持WSGI原有的模式,还支持使用WebSocket,简单来说,ASGI是WSGI的功能扩展。
完成项目的创建后,接着创建项目应用,项目应用简称为App,相当于网站功能,每个App代表网站的一个功能。App的创建由manage.py文件实现,创建指令如下:
D:\>cd MyDjango D:\MyDjango>python manage.py startapp index
从D盘进入MyDjango项目,然后使用python manage.py startapp XXX创建,其中XXX是应用的名称,读者可以自行命名。上述指令创建了网站首页,再次查看MyDjango项目的目录结构,如图1-11所示。
图1-11 新建的index文件夹
从图1-11可以看到,项目新建了index文件夹,它可作为网站首页。在index文件夹中可以看到有多个.py文件和migrations文件夹,说明如下:
- migrations:用于生成数据迁移文件,通过数据迁移文件可自动在数据库中生成相应的数据表。
- __init__.py:index文件夹的初始化文件。
- admin.py:用于设置当前App的后台管理功能。
- apps.py:当前App的配置信息,在Django 1.9版本后自动生成,一般情况下无须修改。
- models.py:定义数据库的映射类,每个类可以关联一张数据表,实现数据的持久化,即MTV中的模型(Model)。
- tests.py:自动化测试的模块,用于实现单元测试。
- views.py:视图文件,处理功能的业务逻辑,即MTV中的视图(View)。
完成项目和App的创建后,最后在命令提示符窗口输入以下指令启动项目:
C:\Users\000>d: D:\>cd MyDjango D:\MyDjango>python manage.py runserver 8001
将命令提示符窗口的路径切换到项目的路径,输入运行指令python manage.py runserver 8001,如图1-12所示。其中8001是端口号,如果在指令中没有设置端口,端口就默认为8000。最后在浏览器中输入http://127.0.0.1:8001/,可以看到项目的运行情况,如图1-13所示。
图1-12 输入运行指令
图1-13 项目运行结果