Django 是一个高度模块化的框架
一个项目由很多应用组成,这些应用分为
内置的:自带的应用,如 admin(后台管理)、auth(身份鉴权)、sessions(会话管理)等
自定义的:实现自己业务逻辑的应用
第三方的:社区提供的应用
所有的 Django 应用都在 mydjango/settings.py 的 INSTALLED_APPS 列表中定义
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
django.contrib.admin -- 管理员站点
django.contrib.auth -- 认证授权系统
django.contrib.contenttypes -- 内容类型框架
django.contrib.sessions -- 会话框架
django.contrib.messages -- 消息框架
django.contrib.staticfiles -- 管理静态文件的框架
补充:
项目和应用的区别?
应用是一个专门做某件事的网络应用程序——比如博客系统
项目则是一个网站使用的配置和应用的集合项目可以包含很多个应用
应用可以被很多个项目使用
创建应用
在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。
Django 自带一个工具,可以生成应用的基础目录结构
(1)创建应用
eg:创建应用blog
python manage.py startapp blog
生成的目录结构为
blog // blog应用目录 ├── __init__.py // 初始化模块 ├── admin.py // 后台管理配置 ├── apps.py // 应用配置 ├── migrations // 数据库迁移文件目录 │ └── __init__.py // 数据库迁移初始化模块 ├── models.py // 数据模型 ├── tests.py // 单元测试 └── views.py // 视图
(2)视图View
blog/views.py
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse("Hello,you're at the blog index.")
(3)路由
Django路由系统是由全局路由和子应用路由组成
根据用户输入的 URL,全局路由表进行匹配并选择正确的子应用路由,再由所选择的子应用路由匹配并选择正确的 View
A.将View接入路由
添加 blog/urls.py
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
B.接入全局路由表
修改 mydjango/urls.py
from django.contrib import admin from django.urls import include, path from . import view urlpatterns = [ path('admin/', admin.site.urls), path('', view.index,name='home'), path('blog/', include('blog.urls')), ]
启动服务器,http://localhost:8000/blog/
输出
Hello,you're at the blog index.