创建 Django 工程
一、虚拟环境下安装依赖包
-
安装稳定的
Django版本pip install django==2.2.5注意:这里不能使用
sudo命令,否则安装到的不是虚拟环境下的目录 -
查看环境内已安装包
pip list
二、创建工程
-
创建工程
进入虚拟环境,使用
django-admin startproject bookmanager创建一个名为
bookmanager的工程 -
查看创建的工程目录
# 工程结构 bookmanager/ # 工程目录 ├── bookmanager # 工程配置目录 │ ├── __init__.py │ ├── settings.py # 项目整体的配置文件 │ ├── urls.py # 项目的URL(路由)配置文件 │ └── wsgi.py # 项目与WSGI兼容的Web服务器入口 └── manage.py # 项目管理文件,通过它管理项目 -
运行工程
在虚拟环境中运行开发服务器
python manage.py runserver ip:端口 # 或 python manage.py runserver可以不写
IP和端口,默认ip是127.0.0.1,默认端口是8000,启动后可见如下信息:Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). You have 17 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. May 06, 2023 - 07:13:20 Django version 2.2.5, using settings 'bookmanager.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.说明启动成功。
-
在浏览器中查看
访问
http://127.0.0.1:8000,看到如下页面,说明启动成功
如果是在
ubuntu中启动的项目,需要windows电脑下访问,即工程所在主机(10.10.22.232)与访问的主机(10.10.22.141)不是同一台电脑,需要做如下修改:
- 在
bookmanager\bookmanager\settings.py文件下,修改ALLOWED_HOSTS的值未['*']或['10.10.22.232', '10.10.22.141'];- 启动工程命令为
python manage.py runserver 10.10.22.232:8000或python manage.py runserver 0.0.0.0:8000;- 在主机
10.10.22.114的浏览器中输入10.10.22.232:8000就可以看到启动成功的页面了。
三、创建子应用
-
创建子应用
进入虚拟环境,进入
bookmanager目录,使用python manage.py startapp book命令创建一个名为book的子应用 -
查看子应用目录
bookmanager/ # 工程目录 ├── book │ ├── admin.py # 文件跟网站的后台管理站点配置相关 │ ├── apps.py # 用于配置当前子应用的相关信息 │ ├── __init__.py │ ├── migrations # 用于存放数据库迁移历史文件 │ │ └── __init__.py │ ├── models.py # 用于保存数据库模型类 │ ├── tests.py # 测试代码 │ └── views.py # 用于编写Web应用视图 ├── bookmanager # 工程配置目录 │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── db.sqlite3 └── manage.py -
注册安装子应用
在
/bookmanager/bookmanager/settings.py文件的INSTALLED_APPS属性里,添加一行'book.apps.BookConfig'。/bookmanager/book/apps.py文件内容如下:from django.apps import AppConfig class BookConfig(AppConfig): name = 'book'