Django入门(创建工程,子应用,视图)

本文详细介绍了Django框架的基础知识,包括Web应用程序处理流程和MVT模式。通过创建Django项目、子应用,以及设置视图,展示了如何处理HTTP请求和响应。讲解了视图函数和类视图的使用,以及如何通过路由来访问这些视图。同时,提到了调试模式和Django的配置文件设置。
摘要由CSDN通过智能技术生成

Django入门(创建工程,子应用,视图)

Web应用程序处理流程
在这里插入图片描述

  • 接收解析客户端发送的HTTP请求
  • 完成请求的业务逻辑处理,处理本次HTTP请求
  • 构造并返回处理结果–HTTP响应

MVT流程
在这里插入图片描述

  • M全拼为Model,负责和数据库交互,进行数据处理
  • V全拼View,接收请求,进行业务处理,返回应答。
  • T全拼Template, 负责封装构造要返回的html。
创建Django项目

1. 创建
可以先切换到桌面
创建工程的命令为:

cd Desktop

在桌面创建工程

django-admin startproject 工程名称

2.工程目录说明
在这里插入图片描述

  • settings.py是项目的整体配置文件
  • urls.py是项目的URL配置文件
  • wsgi.py是项目与WSGI兼容的Web服务器入口
  • manage.py 是项目管理文件,通过它管理项目

3.运行开发服务器

pyhton manage.py runserver ip:端口

可以不写IP和端口,默认127.0.0.1:8000

  • Django默认工作在调试Debug模式下,如果增加、修改、删除文件,服务器会自动重启。
  • ctrl+c停止服务器
创建子应用
  • Django的视图编写是放在子应用中的
  • Flask框架中用类似子功能应用模块的概念,比如蓝图Blueprint。

创建

python manage.py startapp 子应用名称

子应用目录说明
在这里插入图片描述

  • admin.py 文件跟网站的后台管理站点配置相关。
  • apps.py 文件用于配置当前子应用的相关信息。
  • migrations.py 目录用于存放数据库迁移历史文件。
  • models.py 文件用户保存数据库模型类。
  • tests.py 文件用于开发测试用例,编写单元测试。
  • views.py 文件用于编写Web应用视图。

注册安装子应用
创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用。

在工程配置文件settings中

注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。
在这里插入图片描述

视图

视图介绍和项目准备
在这里插入图片描述

  • 视图函数写在子应用中的views.py文件中
def register(request):
    """
    用户注册函数视图
    :param request: 请求对象,包含了请求报文信息
    :return: 响应对象,用于构造响应报文,并响应给用户
    """
    # 响应数据
    return http.HttpResponse('这里假装返回注册页面')

  • 请求对象: HttpRequest()对应的对象
  • 响应对象: HttpResponse()对应的对象

访问视图函数

  • 通过网络地址向Django程序发请求,即可访问到函数视图
    用户使用路由匹配请求地址

  • 定义路由的方法:path()、re_path()、url()

path()

  1. 首先,在子应用中创建urls.py文件,在文件中定义路由信息
# urlpatterns是被Django自动识别的路由列表变量:定义该应用的所有路由信息
urlpatterns = [
    # 函数视图路由语法:
    # path('网络地址正则表达式', 函数视图名),

    # 用户注册:http://127.0.0.1:8000/users/register/
    path('users/register/', views.register),
]
  1. 在总工程中的urls.py中添加包含子应用的路由数据
urlpatterns = [
    # 自带的后台管理系统的总路由:可以忽略
    path('admin/', admin.site.urls),

    # 总路由包含子路由语法
    # path('网络地址前缀/', include('子应用.urls')),
    # 或者
    # path('', include('子应用.urls')),

    # 用户模块:http://127.0.0.1:8000/users/register/
    path('', include('users.urls')),
]
  • 一个子应用对应一个子路由
  • 使用include()将子应用中的路由数据包含到总工程中
  1. 运行测试

    python manage.py runserver

  2. 路由匹配函数视图逻辑
    在这里插入图片描述

类视图

  • 类视图可以解决HTTP不同的请求方式,可以提高代码的可读性和复用性

定义类视图代码:

class RegisterView(View):
   """用户注册类视图
   http://127.0.0.1:8000/users/register/
   """
   def get(self, request):
       """
       处理GET请求,返回注册页面
       :param request: 请求对象,包含了请求报文信息
       :return: 响应对象,用于构造响应报文,并响应给用户
       """
       return http.HttpResponse('这里假装返回注册页面')

   def post(self, request):
       """
       处理POST请求,实现注册逻辑
       :param request: 请求对象,包含了请求报文信息
       :return: 响应对象,用于构造响应报文,并响应给用户
       """
       return http.HttpResponse('这里假装实现注册逻辑')

访问类视图的方法和视图函数一样
注意: 启动测试时,注释CSRF中间件,在settings.py文件中

# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 为保证非GET请求(POST, PUT, DELETE)可以正常接收,该中间件需要注释掉
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值