一个新建立的项目结构大概如下
mysite/
mysite/
init .py
各文件和目录解释:
- 外层的
mysite/
目录与Django无关,只是项目容器,可以任意重命名. manage.py
:一个命令行工具,管理Django的交互脚本。- 内层的mysite/目录是真正的项目文件包裹目录,它的名字是引用内部文件的Python包名,例如:mysite.urls。
mysite/__init__.py
:一个定义包的空文件。mysite/settings.py
:项目的配置文件。mysite/urls.py
:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的目录。mysite/wsgi.py
:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。mysite/asgi.py
:一个基于ASGI的web服务器进入点,提供异步的网络通信功能,通常不用关心。
启动开发服务器
回到mysite项目的根目录,也就是manage.py文件的同级目录下,输入下面的命令:
python manage.py runserver
Django提供了一个用于开发的web服务器,使你无需配置一个类似Ngnix的生产服务器,就能让站点运行起来。这是一个由Python编写的轻量级服务器,简易并且不安全,因此不要将它用于生产环境。
Django的开发服务器(以后简称服务器)默认运行在内部的8000端口,如果你想指定端口,请在命令中显示给出:
python manage.py runserver 8080
如果想修改服务器的ip地址,请按下面的方式运行命令,比如:
python manage.py runserver 0:8000
0 是 0.0.0.0 的简写,Django将运行在0.0.0.0:8000上,整个局域网内都将可以访问站点,而不只是是本机(这其中可能还需要做一些配置和网络测试)。
注意: Django的开发服务器具有自动重载功能,当你的Python代码有修改,服务器会在一个周期后自动更新。但是,有一些动作,比如增加文件,不会触发服务器重载,这时就需要你自己手动重启。所以建议,在任何修改代码的操作后,手动重启开发服务器,确保修改被应用。
PS: 重启服务器的操作在Pycharm里只需要简单地点击重启按钮即可。
创建应用
在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构。
app应用与project项目的区别:
- 一个app实现某个具体功能,比如博客、公共档案数据库或者简单的投票系统;
- 一个project是配置文件和多个app的集合,这些app组合成整个站点;
- 一个project可以包含多个app
- 一个app可以属于多个project
app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。
进入mysite项目根目录,确保与manage.py文件处于同一级,输入下述命令:
python manage.py startapp polls