Django框架的使用

一,创建基本项目

创建项目

# web是项目名称或者称为项目目录

django-admin startproject web

# 会在执行命令的当前目录中 创建 web项目目录

web

├── manage.py     # 项目管理文件   单入口文件

└── web           # 和项目同名的目录/ 存放于项目相关的配置文件 等

  ├── __init__.py  # 包初始化文件

  ├── settings.py  # 项目的配置文件

  ├── urls.py      # 项目的根路由文件

  └── wsgi.py      # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到启动服务

# 终端切换到 web/manage.py目录中并执行以下命令

python3 manage.py runserver

'''

(venv) MacBook-Pro:web yc$ ls

manage.py web

(venv) MacBook-Pro:web yc$ python3 manage.py runserver

Watching for file changes with StatReloader

Performing system checks...

.....

December 28, 2019 - 05:55:33

Django version 2.2.9, using settings 'web.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

'''访问服务

在浏览器的地址栏 访问 url  http://127.0.0.1:8000/

成功后会在浏览器中看到默认页面

二,创建应用

执行命令创建自定义应用

# 在 manage.py 同级目录下 执行 以下命令 创建应用

python3 manage.py startapp home

# 应用创建成功后,会在mamage.py 的同级目录中创建一个 应用文件夹

web/

├── db.sqlite3      # Django框架默认使用数据库文件

├── home            # 创建的自定义应用

│   ├── __init__.py

│   ├── admin.py    # django框架自带后台模块配置文件

│   ├── apps.py

│   ├── migrations

│   │   └── __init__.py

│   ├── models.py   # 模型文件

│   ├── tests.py    # 测试文件

│   └── views.py    # 视图函数文件

├── manage.py     # 项目管理文件 所以的项目指令都需要manage.py

└── web           # 和项目同名的目录/ 存放于项目相关的配置文件 等

  ├── __init__.py  # 包初始化文件

  ├── settings.py  # 项目的配置文件

  ├── urls.py      # 项目的根路由文件

  └── wsgi.py      # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到

定义视图函数 输出 Hello World

编辑 web/home/views.py文件,定义视图函数

from django.shortcuts import render

from django.http import HttpResponse

# Create your views here.

# 定义 视图函数。输出hello world

def hello(request):

   return HttpResponse('Hello World!...')

给视图函数定义访问路由

在 web/home/ 目录中 创建 urls.py文件. 并定义路由

# web/home/urls.py

from django.urls import path

from . import views

urlpatterns = [

   path('abc/', views.hello),

]需要在根路由中配置当前应用的路由

修改 web/web/urls.py 文件,把创建的应用中的路由 定义到 根路由中

from django.contrib import admin

from django.urls import path,include

urlpatterns = [

   path('admin/', admin.site.urls),

   path('',include('home.urls'))

]启动服务,浏览器访问测试

# 启动服务。web/manage.py 同级目录中执行

python3 manage.py runserver

浏览器访问会得下面的结果,就是报 404 错误

问题是由于访问的URL  路径和项目中的url配置路径不一致导致的

解决问题有两个方案:

1.改变浏览器的访问路径 访问的URL。http://127.0.0.1:8000/abc/

2.改变应用中的路由配置 由原来的  path('abc/', views.hello), 改为 path('', views.hello),

正常的访问结果:

流程总结:

浏览器访问的流程

1. 用户在浏览器中输入 请求的URL地址 http://127.0.0.1:8000/abc/

2. 用户的请求会经过wsgi通用网关接口,走到项目的根路由中

3. 项目中的 根路由 web/web/urls.py 文件 会解析用户的请求地址 abc/

4. 根路由解析后会交给 应用中字路由进行再次解析:web/home/urls.py

5. 应用中的子路由 在根据请求的地址 找到对应的视图函数

6. 视图函数 views.py里面的。hello函数会执行

7. hello函数 返回了一个 响应内容 给浏览器

代码角度来解读:

1. views.py文件中的 hello视图函数 定义了 响应的内容。hello world

2. 应用中的子路由决定如何解析或执行 对应的hello这个视图函数

3. 项目中的根路由负责接收用户请求的url并找到对应的 应用去 执行

4. wsgi负责接收和响应用户的请求三, 概念解析

路由,视图,

路由:

路由就是建立请求路径和执行对应视图函数的 映射关系。

要先确定根路由,并依次匹配请求的规则

如果匹配到就执行对应的视图函数

如果没有匹配到或者出现其它问题,则会抛出对应的错误信息

视图:

视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应。

简单理解就是专门接收用户的请求,并执行业务逻辑,之后给用户响应内容。

四,如何使用模板文件返回 Hello World

创建模版文件目录

在项目中创建 templates 文件夹存放模版文件 manage.py文件同名目录中创建

配置Django的模版引擎

修改 web/web/settings.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',

          ],

      },

  },

]

创建需要使用的模版文件 。html文件

Web/templates/hello.html

Document

Hello. World

在视图函数中调用模版文件即可

from django.shortcuts import render

from django.http import HttpResponse

# Create your views here.

# 定义 视图函数。输出hello world

def hello(request):

   # 返回。响应字符

   # return HttpResponse('Hello World!...')

   # 返回 模版文件

   return render(request,'hello.html')

重新启动服务,并用浏览器进行访问

五,框架的设计思想,设计模式

MVC 设计模式。设计细想

MVC是程序的架构设计,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面

MVC的核心思想:程序的解藕

M ==> Model         模型       表示为   数据层    专门负责数据相关操作

V ==>  Views          视图       表示为   视图层   专门负责页面的展示(模版)

C ==> Controller   控制器    表示为   逻辑层   专门负责项目中的业务逻辑部分

MVT

M ==> Model ==>     模型   ==> 数据层

V  ==> Views  ==>     视图   ==> 逻辑层

T  ==>Template ==> 模版.  ==> 视图层

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200604A0551R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券