操作系统:windows
IDE:Pycharm
一、创建一个Django Project
主要有两个方法:
-
直接在Pycharm中创建:
File -> New Project
,然后选择Django
-
在cmd中使用命令创建项目,然后在Pycharm中打开:
cmd进入目标文件夹,然后使用指令:
django-admin startproject my_django
会自动创建一个名为my_django的项目,然后可以用Pycharm打开进行操作
二、Django的项目结构
例如项目名称为:Django_test
- 最外层
Django_test
就是整个项目的根目录,项目文件都在这 manage.py
是一个工具脚本,用于项目管理。我们使用它执行管理操作- 和项目同名的
Django_test
是python包,包含项目的重要配置文件,名字不能随便更改,因为manage.py
要用到 wsgi.py
:提供给wsgi web server
调用 的接口文件,里面的变量application
对应对象实现了 wsgi入口,供wsgi web server调用
三、运行Django web服务
- 可以在cmd中进入根目录,然后执行命令:
python manage.py runserver 0.0.0.0:8080
,
其中0.0.0.0:8080
是指定的web服务绑定的IP地址和端口,0.0.0.0
表示绑定本机的所有IP地址,可以通过任何本机IP,包括环回地址127.0.0.1来访问web 服务
注意: 用这个方法不能关闭cmd,否则服务会停止 - 在Pycharm中直接运行web服务,需要进行设置:
用浏览器访问127.0.0.1:8080
(注意8080不能省略,缺省默认为80)
最终能看到这个效果,说明web 服务成功启动了:
如果要使用别的ip进行访问,例如192.168.1.100
或者localhost
,可以在setting.py中的ALLOWED_HOSTS
中进行添加。
注: 报错 NameError: name 'os' is not defined
,只要加上import os
即可
补充:
wsgi:
python 组织制定了 web 服务网关接口(Web Server Gateway Interface) 规范 ,简称wsgi。参考文档看这里
遵循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 ,组成一个高效的 后端服务。