【Django】简介和 hello Django

Django 简介

Django 最初发布在 2005 年,是当前 python 比较成熟且知名的网络框架,最初被用来制作 新闻站点django 的官方网站:https://www.djangoproject.com/;django 采用的是 MVC 的框架模式,因为一个Django 项目由 models view 和 templates 组成,所以也被叫做 MVT 的设计模式

MVC 设计模式

MVC 是一种业务逻辑,使数据和界面显示进行分离,将业务逻辑聚集到一个部件里面,代码复用率高。MVC 被发展起来用来实现映射传统的输入,处理 和逻辑输出功能;MVC 的核心思想是 解耦;最大优点是 方便代码复用。

MVC :M:Model: 是提供数据处理的服务性接口,在服务端对数据进行处理,实现对数据增删改查的相关功能;V: View : 负责数据的展示和呈现,也就是实现在客户端或者浏览器中向用户展示数据;C : Controller : 实现对数据进行增删改查的控制动作,(比如调用方法对特定的数据进行查询)
在这里插入图片描述

**如图:**首先通过 Controller 接收用户输入的操作,并通过 Controller 将用户的数据操作指令传输给 Model 通过 Model 在服务端对用户需要的数据进行操作,并将最后的结果返回给 View :View 的功能是向用户显示对应的数据。

Django 的 MVT 设计模式

在这里插入图片描述

上图是比较适合 Django 的设计模式 和用户数查询流程:首先使用 Controller 接收用户的 request ,并将请求内容传送给 Model ;通过 Model 实现服务端的数据查询和操作,将最后的结果返回给 Controller ,最后 Controller 将获取的数据(data)传输给 View ;view 的功能是向用户展示数据。

MVT 与 MVC 的异同

  • M:Model :负责业务对象和数据库对象
  • V:View :负责业务逻辑,比能在适当的时候调用 Model 和 Template(相当于 MVC 的 controller)
  • T :Template :负责把页面展示给用户(相当于 MVC 的 view)
  • 注意:Django 中还有一个 URL 分发器,主要用于将一个 url 分发给不同的 View 进行处理,然后View 在调用相应的 Model 和template
Django 的工作模式

在这里插入图片描述
用户发送的请求首先会被 URL 控制器接收,并根据规则发送给对应的 view 视图函数 进行控制和数据操作;View 接着对Models 发送数据请求,通过 models 从数据库中查询数据;必能降最后的结果返回给 View ;View 调用 template 将返回的数据渲染成对应的模板数据展示给用户

Django 认识补充

Django 自带一个 开发者服务器 ;通过命令 runserver 快速部署,但是这个服务器性能比较低,一般只在开发的时候使用;

Django 是一个重量级框架,自带的插件很多

Hello Django

使用 win10 系统之下的 pycharm 进行新建 Django 项目

在这里插入图片描述

win 10 的pycharm 工具在创建一个新的 Django 项目的时候会新建一个虚拟环境 (virtualenv),等待项目加载完毕,便会出现这样的一个目录

在这里插入图片描述

在目录文件下会多出一个与项目同名的包,其中__init__.py是包标识文件,说明了这个目录是一个python包,settings.py是这个项目的设置文件;urls.py:是这个项目的url 管理文件;wsgi.py的作用是用来做项目的迁移。

再初步打开这个项目之后,我们在terminal 终端中输入以下命令:

(HelloDjagodemo) F:\preprojects\django\HelloDjagodemo>python manage.py startapp App

下载创建第一个 App 项目文件,命令执行结束之后会在项目目录内生成对应的 App 文件包
在这里插入图片描述

其中 migrations 包的作用是项目迁移;__init__.py:说明这个目录是一个python包;admin.py:管理员包管理工具;models:用于处理数据模型,实现功能的方法;views: 用于传递控制信息和调用template返回结果的函数视图。

**运行项目:**在terminal中输入以下代码:

>python manage.py runserver            # 运行项目的命令
# 此时项目会在 Django 自带的服务器中运行
# 项目成功运行会输出以下信息
Run 'python manage.py migrate' to apply them.     #(省略一部分未部署提示)
May 25, 2020 - 11:40:33        # 以下信息说明了项目成功运行,项目默认的端口是 8000
Django version 3.0.6, using settings 'HelloDjagodemo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

此时我们可以在浏览器中访问这个项目;
在这里插入图片描述

注意点:使用 pycharm 打开 Django 工程的时候要保证是在 manage.py 的上一级(选中 manage.py 的上一级文件夹打开一个 Django 工程)

settings 文件解析

因为 settings 文件是Django 项目的整体设置文件,以下对于 Django 项目的设置文件settings.py进行相关的参数解析

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 参数 : BASE_DIR:指的是调用的项目所在的根目录

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'j_uxgnz&slrrrz44x8m18+1$cb4qzhpn)$+zstmcyghe%w2-=j'
# 参数:SECURT_KEY:指的是在生产环境中项目使用的密钥(注意是生产环境不是开发环境)

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# 在开发环境中,打开 Django 的调试模式

ALLOWED_HOSTS = ["*"]
# 允许通过的主机名,一般设置成 * 通配符,允许任意域名的主机访问

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
# INSTALLED_APPS =[]:这个列表展示了在 Django 项目创建的过程中安装的功能

# 代指中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 模板的相关参数和插件
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',
            ],
        },
    },
]

# 用于迁移的app 参数
WSGI_APPLICATION = 'HelloDjagodemo.wsgi.application'

# 刚开始默认的数据库环境是 SQLlite
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 时间与语言设置(第一个参数语言设置默认是英语)
LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'
--------------------------
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Aisa/Shanghai'
# 修改成为本地时间

当修改了时间和语言之后,我们再次运行项目,发现起始界面变成了中文

在这里插入图片描述

在 pycharm 中配置数据库可视化(以案例SQLlite为例)

在 win 10 的 默认pycharm 程序中 右击对应的数据库文件没有 as data source 选项,这个时候需要点击软件右侧的 database 进行手动配置,点击 database 弹出框的 + 在 data source 中选择对应的数据源文件(文件类型,这里选择的是SQLlite)

在这里插入图片描述

配置文件的对应路径(在 File: 选框中填充对应的文件路径即可/也就是选择到对应的文件)
在这里插入图片描述

点击应用–确定,配置成功。
在这里插入图片描述

对 Django 项目进行迁移部署

在直接运行项目的时候我们发现会有以下提示:

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, ses
sions.
Run 'python manage.py migrate' to apply them.

表明项目没有进行部署,这个时候我们需要使用命令:

# 命令:
>python manage.py migrate     # 这个命令是关于 Django 项目的迁移部署
# 输出信息
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
...

在部署过程结束后,我们打开 database – 刷新 发现数据表多出了部署后的部分

在这里插入图片描述

此时对于这个项目的基本设置和部署,已经全部完成了

猜你喜欢

转载自blog.csdn.net/weixin_45895022/article/details/106346987
今日推荐