django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用
  fWYLoOuQgbo8 2023年11月02日 49 0

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

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


共 10 章,31 子模块,总计 18647 字


工程搭建

学习目标

  • 掌握虚拟环境使用
  • 掌握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. 需要编写一个视图函数
      2. 针对该视图配置访问路由

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'
    
  3. 应用配置: 需要在项目配置文件 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模板中应用

    使用静态文件: <br/> <img src="/static/imgs/avatar01.png" />

注意

  • Django 仅在调试模式下(DEBUG=True)能对外提供静态文件
  • DEBUG=False 工作在生产模式时,Django不再对外提供静态文件

路由配置

学习目标

  • 掌握Django中URL配置
  • 掌握Django URL的匹配流程
  • 掌握URL路径中请求参数的

未完待续 下一期下一章

完整笔记请看文章开头

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   104   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   73   0   0 Python
  fwjWaDlWXE4h   2024年05月17日   38   0   0 Python
fWYLoOuQgbo8