> 文章列表 > day1-Django命令、目录结构

day1-Django命令、目录结构

day1-Django命令、目录结构

目录

1.基础命令

2.目录文件说明

3.路由系统

4.使用子应用


1.基础命令

  •   查看所有子命令   python3 manage.py
  •   创建项目   django-admin startproject 项目名
  •   命令行启动项目  py manage.py runserver 端口号(可省略,使用默认端口)
  •   创建子应用      py manage.py startapp 应用名
  •   数据库迁移      py manage.py makemigrations      py manage.py migrate
  •   创建后台超级用户     py manage.py createsuperuser
  •   调试终端   py manage.py shell
  •   清空数据库   py manage.py flush

2.目录文件说明

     2.1 项目目录

|Demo						项目根目录
├── Demo					项目名称
│   ├── __init__.py					inti文件,标识当前所在的项目目录是一个 Python 包
│   ├── settings.py					项目配置文件
│   ├── urls.py						url路径文件
│   └── wsgi.py						WSGI服务器程序的入口文件
└── manage.py						命令行工具文件

    2.2 子应用目录

    在Demo目录的终端上 运行  py manage.py startapp child 创建一个子应用,然后在settings.py中进行注册。

|child						子应用根目录				
│__ __init__.py				inti文件,标识当前所在的目录是一个 Python 包
│__ admin.py                 后台配置
│__ apps.py                  应用本身配置
|__ models.py                数据库模型表
|__ tests.py                 用于编写当前应用本身的单元测试
|__ views.py                 web视图
|__ migrations              迁移文件目录

3.路由系统

  • 基本配置:
    from django.urls import path
    from django.urls import re_path
    urlpatterns = [
    path(route,view,kwargs=None,name=None)
    # 使用正则
    re_path('^ccc', index, kwargs=None, name=None)
    ]

    route: 标识url的正则表达式(必填)
    view: 视图函数(必填)
    kwargs: 字典形式传给视图函数的默认参数(可选)
    name:  给route起的一个名字,可用于反向解析(可选)

  • 三种URL映射
    1)固定url映射:一个固定不变的url映射到一个视图:path('bbs/',views.bbs)
    2)  动态映射:根据url传递的参数匹配:path('bbs/<int:page>',views.bbs_list)
    3)  多级url映射:当一个项目中存在多个app的时候,使用如下方式:path('app/',incolude('app.urls'))

4.使用子应用

利用 Django特定的配置方式,建立起视图函数和url之间的关系,以下采用多级映射绑定路由

  1. 定义视图函数
    from django.http import HttpResponse
    # Create your views here.def index(request):return HttpResponse('123')
  2. 在子应用目录下面创建一个路由文件 url.py
    from django.urls import path
    from .views import indexurlpatterns = [path('', index, kwargs=None, name=None)
    ]
    
  3. 在项目的url.py文件中指定子应用
    from django.contrib import admin
    from django.urls import path,include
    urlpatterns = [path('admin/', admin.site.urls),path('child/', include('child.urls')),
    ]