安装Django
Django 框架是用Python语言开发的, 所以安装Django 就像安装其他的 Python库一样,执行如下命令即可
> pip install django
你可以执行如下命令检查Django是否安装好, 并且查看安装的Django版本
> python -m django --version
如果像上面那样显示出一个版本数字(比如这里就是2.1.3) 表示已经安装好了。
创建项目
安装好以后, 我们需要创建我们 的 项目目录,项目目录里面保存了开发系统的所有文件。
我们可以创建 d:\projects 作为我们的项目所在的目录。
然后从命令行窗口中 进入到 d:\projects 目录,执行下面的命令创建项目目录
django-admin startproject Demo
注意最后的 Demo 就是项目的根目录名,执行上面命令后,就会创建 如下的目录结构:
Demo/
manage.py
Demo/
__init__.py
settings.py
urls.py
wsgi.py
最外层 Demo/ 就是项目根目录 d:\projects\Demo\ , 项目文件都放在里面。
manage.py 是一个工具脚本,用作项目管理的。以后我们会使用它执行管理操作。
里面的 Demo/ 目录是python包。 里面包含项目的重要配置文件。这个目录名字不能随便改,因为manage.py 要用到它。
Demo/settings.py 是 Django 项目的配置文件. 包含了非常重要的配置项,以后我们可能需要修改里面的配置。
Demo/urls.py 里面存放了 一张表, 声明了前端发过来的各种http请求,分别由哪些函数处理. 这个我们后面会重点地讲。
Demo/wsgi.py 要了解这个文件的作用, 我们必须明白wsgi 是什么意思
python 组织制定了 web 服务网关接口(Web Server Gateway Interface) 规范 ,简称wsgi。参考文档:https://www.python.org/dev/peps/pep-3333/
遵循wsgi规范的 web后端系统, 我们可以理解为 由两个部分组成
wsgi web server 和 wsgi web application
它们通常是运行在一个python进程中的两个模块,或者说两个子系统。
wsgi web server 接受到前端的http请求后,会调用 wsgi web application 的接口( 比如函数或者类方法)方法,由wsgi web application 具体处理该请求。然后再把处理结果返回给 wsgi web server, wsgi web server再返回给前端。
如下图所示
为什么要搞出两个子系统,这么麻烦呢?
因为这两个子系统有各自负责的重点。
wsgi web server 负责 提供高效的http请求处理环境,可以使用多线程、多进程或者协程的机制。
http 请求发送到 wsgi web server , wsgi web server 分配 线程或者进程或者 轻量级线程(协程),然后在 这些 线程、进程、或者协程里面,去调用执行 wsgi web application 的入口代码。
wsgi web application 被调用后,负责 处理 业务逻辑。 业务逻辑的处理可能非常复杂, wsgi web application 需要精心的设计来正确处理。
django是 wsgi web application 的框架,它只有一个简单的单线程 wsgi web server。 供调试时使用。
产品正式上线运行的时候,通常我们需要高效的 wsgi web server 产品,比如 gunicorn,uwsgi,cherrypy等,结合Django ,组成一个高效的 后端服务。
所以这个 wsgi.py 就是 提供给wsgi web server调用 的接口文件,里面的变量application对应对象实现了 wsgi入口,供wsgi web server调用 。
2021年10月18日补充
上面的方式创建的项目,项目配置目录和项目本身目录同名。
可以这样创建目录,结构更合理一些:
# 执行命令创建项目目录,并且进入到项目目录
mkdir Demo&& cd Demo
# 然后执行命令 创建manage.py 和 项目配置目录 名为 config
django-admin startproject config .
运行 Django web服务
刚才我们说了, django虽然只是 wsgi web application 的框架,但是它也有一个简单的 wsgi web server 。 供调试时使用。
所以也构成一个完整的后端web服务。 本地调试代码的时候,完全可以运行起来。
运行开发web 服务只需要在命令行窗口里面,
首先进入到项目根目录 ,比如,我们这里就是 d:\projects\Demo\
然后执行如下命令
python manage.py runserver 0.0.0.0:80
这样服务就会被启动。 我们就可以在浏览器访问web服务了。
其中 0.0.0.0:80 是指定 web服务绑定的 IP 地址和端口。
0.0.0.0 表示绑定本机所有的IP地址, 就是可以通过任何一个本机的IP (包括回环地址 127.0.0.1 ) 都可以访问我们的服务。
80 表示是服务启动在80端口上。
请打开浏览器,地址栏输入 ‘127.0.0.1’ ,就可以看到如下的界面,表示Django服务搭建成功,启动成功。
注意,启动web服务的命令行窗口不能关闭,如果关闭,web服务就停止了。