Django基础

本文介绍了Django框架的基础知识,包括其基于MTV模型的设计思想,其中M表示模型,T表示模板,V表示视图,以及URL控制器的作用。详细讲述了Django的ORM(对象关系映射)机制,强调了其易用性、灵活性和可移植性的优点。此外,还讨论了Django的字段类型、查询操作、路由与视图函数、模板语法以及中间件的使用,提供了深入理解Django开发的关键知识点。
摘要由CSDN通过智能技术生成

Django

基本介绍

  • Django包含了一个网站开发所需的大部分内容,
  • Django基于MVC模型,即即 Model(模型)+ View(视图)+ Controller(控制器)设计模式。
  • django 具有强大的数据库功能,自带的后台功能和网址。
  • MVC模型
    • MVC模式是软件工程的一种软件架构模式(以一种插件式的、松耦合的方式连接在一起),把软件系统分为三个基本部分:
      • 模型: 编写程序应有的功能,负责业务对象与数据库的映射(ORM)
      • 视图:图形界面,负责与用户的交互(页面)
      • 控制器:负责转发请求,对请求进行处理
  • MTV模型
    • Django的MTV模型本质同MVC一样,只不过定义上有一点不同
      • M表示模型:编写程序应有的功能, 负责业务对象与数据库的映射(ORM )
      • T表示模板: 负责如何把页面展示给用户
      • V表示视图:负责业务逻辑,并在合适调用model和template
      • 再加一个URL控制器,用于将一个个并不认同的URL的页面请求分发给不同的View处理
  • Django语法
    • Django的setting.py文件内容解释

      import os
      from pathlib import Path
      
      # 开头获取项目所在的绝对路径, __file__这个变量可以获取当前文件的路径
      BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
      
      
      # 加密
      SECRET_KEY = '@pt=tw&!9+1rh2!jt!ph92fdc4u^-@0pa5#b%@guys^ykz4bk-'
      
      # 调试模式
      DEBUG = True
      
      ALLOWED_HOSTS = ['*']  # 允许访问的域名列表,且DEBUG=False时必填
      
      
      # 应用程序的注册
      
      INSTALLED_APPS = [
          'django.contrib.admin',     # 内置的后台系统
          'django.contrib.auth',      # 内置的用户认证
          'django.contrib.contenttypes',  # 记录项目中所有的model数据即ORM框架
          'django.contrib.sessions',      # session会话功能,用于表示当前访问网站的用户信息
          'django.contrib.messages',      # 消息提示功能
          'django.contrib.staticfiles',   # 寻找静态资源路径
          'project_one.apps.AppConfig',   # 将APP项目添加到列表
      ]
      
      # 中间件
      MIDDLEWARE = [
          'django.middleware.security.SecurityMiddleware',    # 内置的安全机制,保护用户与网站的通信安全
          'django.contrib.sessions.middleware.SessionMiddleware',     # 会话session功能
          'django.middleware.common.CommonMiddleware',                # 处理请求信息
          'django.middleware.csrf.CsrfViewMiddleware',                # 开启CSRF防护功能
          'django.contrib.auth.middleware.AuthenticationMiddleware',  # 开启内置的用户认证系统
          'django.contrib.messages.middleware.MessageMiddleware',     # 开启内置的信息提示功能
          'django.middleware.clickjacking.XFrameOptionsMiddleware',   # 防止恶意攻击劫持
      ]
      
      ROOT_URLCONF = 'project_one.urls'   # 配置路由文件(urls.py)的位置
      
      # 模板路径
      TEMPLATES = [
          {
             
              'BACKEND': 'django.template.backends.django.DjangoTemplates',
              'DIRS': [os.path.join(BASE_DIR, 'templates')]
              ,
              'APP_DIRS': True,
              'OPTIONS': {
             
                  'context_processors': [
                      'django.template.context_processors.debug',
                      'django.template.context_processors.request',
                      'django.contrib.auth.context_processors.auth',
                      'django.contrib.messages.context_processors.messages',
                  ],
              },   # 用于填充在RequestContext1中上下文的调用函数,一般不做修改
          },
      ]
      
      WSGI_APPLICATION = 'project_one.wsgi.application'    # 设置wsgi中函数application的位置
      
      
      # 数据库配置
      
      DATABASES = {
             
          'default': {
             
              'ENGINE': 'django.db.backends.sqlite3',
              'NAME': BASE_DIR / 'db.sqlite3',
          }
      }
      
      
      # 密码验证
      # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
      
      AUTH_PASSWORD_VALIDATORS = [
          {
             
              'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
          },
          {
             
              'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
          },
          {
             
              'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
          },
          {
             
              'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
          },
      ]
      
      
      # Internationalization
      # https://docs.djangoproject.com/en/3.1/topics/i18n/
      
      LANGUAGE_CODE = 'en-us'
      
      TIME_ZONE = 'UTC'
      
      USE_I18N = True
      
      USE_L10N = True
      
      USE_TZ = True
      
      # Static files (CSS, JavaScript, Images)
      # https://docs.djangoproject.com/en/3.1/howto/static-files/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值