django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用

举报
程序员一诺112 发表于 2023/10/29 18:40:16 2023/10/29
【摘要】 当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源Python Web框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用

当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源Python Web框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用


完整版笔记直接地址: 请移步这里



共 10 章,31 子模块,总计 1.8w+ 字





工程搭建



学习目标


  • 掌握虚拟环境使用

  • 掌握Django项目和应用的创建

  • 掌握Django项目的运行

  • 掌握Django视图和模板的初步使用



视图模板初步使用


Django中的视图

  • 同Flask框架一样,Django也使用 视 图 来编写Web应用的业务逻辑。

  • Django的视图也就是一个函数,可称为 视 图函数

  • 视 图 定义在应用的 views.py 文件中的

  • 视 图 需要绑定一个URL地址(路由),才能被django框架找到并调用执行


一、视图初步使用


需求: 编写视图并配置URL(路由),实现一个显示界面

  1. 需求: 当在浏览器中访问URL地址 ht://127.0.0.1:8000/users/index 时,显示 hello django 信息

  2. 实现:

    1. 需要编写一个视图函数

      1. 针对该视图配置访问路由


1. 创建视图


打开刚创建的users模块,在 views.py 中编写视图代码。

from django.http import HttpResponse

def index(request):
    """访问首页的视图"""
    return HttpResponse("hello django")

image

关于视图的说明:

  • 关于视图【理解】

    • 视 图不是由开发者主动调用的,而是由 Django 框架调用

    • 当Django接收到请求时,会进行URL正则匹配,调用对应的视图

    • 调用视图时,Django会把请求信息封装为一个 HttpRequest 对象,并作为视图的第一个参数传入

  • 关于视图的参数

    • 视 图的第一个参数必须定义,名字可自定义,但习惯命名为 request,类型为HttpRequest

    • 缺少了该参数,Django在调用视图时,将无法传入HttpRequest对象

  • 关于视图的返回值

    • 视图必须返回一个 HttpResponse 对象(或其子类对象),不能像Flask一样直接返回字符串

    • HttpRequest请求对象由Django创建,HttpResponse响应对象由开发人员创建


2. 配置URL(路由)


  • 在项目下的 urls.py 文件中进行url路由配置如下:

      # 注意:urlpatterns是一个列表


  urlpatterns = [
      ...    


      # 配置路由和视图: ht://127.0.0.1:8000/users/index



      # 参数1: 匹配url的正则表达式



      # 参数2: 匹配成功后由Django框架调用的视图函数


      url(r'^users/index$', views.index),
  ]

注意:此处只是为简单作的初步配置,后续会对URL配置进一步讲解


3. 在浏览器中测试


在浏览器中输入网址 ht://127.0.0.1:8000/users/index,确认是否执行了视图的逻辑,返回 hello django 信息

在浏览器测试




一、模板初步使用


  1. 在项目的 templates 目录下创建一个模板文件

模板初步

  1. 在视图函数中,使用render()方法渲染模板,得到HttpResponse对象并返回

    def index(request):

     # render返回的是HttpResponse对象


     return render(request, 'index.html')


二、额外项目配置


【 注意】 针对命令行创建的项目,需要额外手动创建模板目录,并进行配置;如果Pycharm创建的项目则无需作额外操作

  1. 在项目根目录下创建 templates 模板目录,后续开发中模板文件会放在此目录下

  2. setting.py 项目配置文件中,作如下配置:

django-004




项目配置文件



学习目标


  • 掌握Django配置文件的常用配置




项目常用配置


在项目的 setting.py 配置文件中,进行项目相关配置的修改。


1. BASE_DIR


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

当 前项目的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。


2. DEBUG


  • 含义:是否为调试模式(开发模式),默认为 True

  • 作用:当 DEBUGTrue 时,如果Django程序运行出现异常时,会在浏览器显示详细的出错调试信息(如下图),而非调试模式下,不会显示出错调试信息

错误信息

【重要】项目运行出错了,需要查看是哪里一行代码造成出错,再进行分析解决

错误信息

  • 注 意:项目上线应该设置为 False 关闭调试模式,并且要同时设置 ALLOWED_HOSTS 参数

      # 关闭调试模式


  DEBUG = True


  # 设置允许通过哪些主机访问, * 表示匹配所有(ip)


  ALLOWED_HOSTS = ['*']


3. 本地语言与时区


项目本地化配置

  • Django支持本地化处理,即显示语言与时区

  • 新创建的Django项目,默认使用的语言为 英语,时区为 UTC标准时区

    LANGUAGE_CODE = 'en-us' # 语言 TIME_ZONE = 'UTC' # 时区

  • 配置修改: 将语言和时区修改为中国大陆信息

    LANGUAGE_CODE = 'zh-hans' # 语言设置为 中文 TIME_ZONE = 'Asia/Shanghai' # 时区设置为 亚洲/上海,注意没有北京

测试

  1. django自带了管理后台模块,可以通过 ht://127.0.0.1:8000/admin/login 访问,默认显示为英文

  2. 修改上述参数后,再次访问,确认是否会显示为中文

本地化


4. App应用配置


  1. 在每个应用目录中都包含了 apps.py 文件,用于保存该应用的相关信息

  2. 在创建应用时,Django会向 apps.py 文件中写入一个该应用的配置类,如下

    from django.apps import AppConfig

    class UsersConfig(AppConfig):


     # 表示这个配置类是加载到哪个应用的,



     # 每个配置类必须包含此属性,默认自动生成


     name = 'users'
  1. 应用配置: 需要在项目配置文件 settings.py 中的 INSTALLED_APPS 列表中,注册创建出来的应用,示例:

django-004

配 置说明

* **用 pycharm创建的项目,默认已经是注册了应用的,不需要作额外配置**,针对新创建的应用(或命令行创建的应用)需要作此配置
* 作用:注册应用后,后续开发中,针对该应用中定义的模型类,才会生成对应的数据库表;


静态文件及配置


  • 项 目中的 CSS、图片、js都是 静态文件

  • 静态文件可以放到一个单独的目录中,以方便管理

  • 静态文件相关配置

    • STATICFILES_DIRS 静态文件保存在哪个目录下(此参数默认django没有配置,需要开发者自己配置)

    • STATIC_URL 访问静态文件的URL前缀,通常采用默认值 /static/


配置示例


  1. 在项目根目录下创建 static_files 目录,并添加子目录和文件 imgs/avatar01.png

  2. 在 项目 settings.py 文件中进行配置


     # 访问静态文件用到的url前缀


 STATIC_URL = '/static/'



 # 告知Django静态文件保存在哪个目录下


 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files')]
  1. index.html模板中应用

    使用静态文件:


注意


  • Django 仅在调试模式下(DEBUG=True)能对外提供静态文件

  • DEBUG=False 工作在生产模式时,Django不再对外提供静态文件


路由配置



学习目标


  • 掌握Django中URL配置

  • 掌握Django URL的匹配流程

  • 掌握URL路径中请求参数的




未完待续 下一期下一章


完整笔记请看文章开头

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。