django项目的创建

一. 创建Django项目

1. 创建虚拟环境,进入虚拟环境(虚拟环境创建在其他文章中有)

workon py3_django

2. 安装django包

pip install django==1.11.11

说明:安装时可能报错,需要使用豆瓣代理:

pip install -i https://pypi.douban.com/simple django==1.11.11

3. 进入想要创建项目的目录下创建项目

创建项目命令:

django-admin startproject 工程名称

创建bookmanager项目命令如下:

django-admin startproject bookmanager

创建完后进入项目目录:

└─manage.py
│
└─bookmanager
        settings.py
        urls.py
        wsgi.py
        __init__.py

说明:

  • 与项目同名的目录,此处为bookmanager。
  • settings.py是项目的整体配置文件。
  • urls.py是项目的URL配置文件。
  • wsgi.py是项目与WSGI兼容的Web服务器入口。
  • manage.py是项目管理文件,通过它管理项目。

二. 运行开发服务器

在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令如下:

python manage.py runserver ip:端口
或:
python manage.py runserver

说明:

  1. 可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
  2. 启动可能报错:SyntaxError: Generator expression must be parenthesized (widgets.py, line 152)  原因:由于django 1.11版本和python3.7版本不兼容, 2.0版本以后的Django修复了这个问题,解决方法:找到指定文件:D:\work\Envs\py3_django\Lib\site-packages\django\contrib\admin\widgets.py (linux则在对应的linux目录中)删除152行最后的“,” ,再次启动即可成功
                if params:
                    related_url += '?' + '&'.join(
                        '%s=%s' % (k, v) for k, v in params.items()  //最后本来有个逗号,删掉
                    )

  3. 启动后,在浏览器中输入网址“127.0.0.1:8000”便可看到效果。

  

  4. django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。

  5. 按ctrl+c停止服务器。

创建子应用

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。

在Flask框架中也有类似子功能应用模块的概念,即蓝图Blueprint。

Django的视图编写是放在子应用中的。

1. 创建子应用:

python manage.py startapp 子应用名称

也可以:

django-admin startapp 子应用名称

说明:

  • django-admin ...  相当于 python manage.py ...
  • manage.py为上述创建工程时自动生成的管理文件。

例如,创建book模块:

cd ~/code/book    # 进入项目所在目录
python manage.py startapp book    # 创建book子应用模块

说明:

  • 创建完成后项目目录下多了book目录:
.
├── book
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── bookmanager
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-38.pyc
│   │   └── settings.cpython-38.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

book目录结构说明:

  • admin.py文件跟网站的后台管理站点配置相关。
  • apps.py文件用于配置当前子应用的相关信息。
  • migrations目录用于存放数据库迁移历史文件。
  • models.py文件用户保存数据库模型类。
  • tests.py文件用于开发测试用例,编写单元测试。
  • views.py文件用于编写Web应用视图。

2. 在pycharm 中打开项目并注册子应用

2.1 用pycharm打开项目,并配置解释器为虚拟环境的解释器

2.2 在工程配置文件settings.py的INSTALLED_APPS列表中注册子应用

注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中, 这里注册book即是在列表中添加项:

book.apps.BookConfig

说明:

  • 这里注册实际上注册的是子应用的路径,book.apps.BookConfig实际上是指向book下apps.py中的BookConfig,代码是这样:
class BookConfig(AppConfig):
    name = 'book'

  这里的name属性值可以理解为子应用所在目录

posted @ 2021-01-11 23:06  foreast  阅读(180)  评论(0编辑  收藏  举报