Django——小结

简介:  Python的WEB框架有Django、Tornado、Flask 等多种,Django是重量级选手中最有代表性的一位,它的优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。

Django简介

Python的WEB框架有Django、Tornado、Flask 等多种,Django是重量级选手中最有代表性的一位,它的优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。Django采用了MVT的软件设计模式,即模型Model,视图View和模板Template。

MTV 模型

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

 M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。

 T 表示模板 (Template):负责如何把页面(html)展示给用户。

 V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。

 除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:

2345_image_file_copy_30.jpg

用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

 a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。

 b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。

 视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

创建项目

2345_image_file_copy_31.jpg

创建app

2345_image_file_copy_32.jpg

django路由

2345_image_file_copy_33.jpg

django中orm

1、使用model中类来与数据库中的表对应

2345_image_file_copy_34.jpg

2、orm中映射字段大全

2345_image_file_copy_35.jpg

2345_image_file_copy_36.jpg

3、修改项目中settings中数据库信息并且将创建的app加入到INSTALL_APP中

4数据库同步

2345_image_file_copy_37.jpg

5orm中增删改查语句

2345_image_file_copy_39.jpg

2345_image_file_copy_40.jpg


改:

  get对象后通过updata()对想修改的属性进行修改

filter后使用update(属性=)修改

删:

  get对象后通过delete()对想删除的属性进行删除

filter后使用delete(属性=)删除

django视图

请求对象: HttpRequest 对象(简称 request 对象)

以下介绍几个常用的 request 属性。

1、GET

 数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP GET 的所有参数。

 有相同的键,就把所有的值放到对应的列表里。

 取值格式:对象.方法。

 get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

2、POST

 数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP POST 的所有参数。

 常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。

 取值格式: 对象.方法。

 get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

3、path

 获取 URL 中的路径部分,数据类型是字符串。

4、method

 获取当前请求的方式,数据类型是字符串,且结果为大写。

响应对象:HttpResponse 对象

响应对象主要有三种形式:HttpResponse()、render()、redirect()。

1、HttpResponse():

 返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。

2、render():

  返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。

3、redirect():

 重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。

django中间件(类似与filter)

2345_image_file_copy_41.jpg

2345_image_file_copy_42.jpg

2345_image_file_copy_43.jpg

django上传文件

2345_image_file_copy_44.jpg2345_image_file_copy_45.jpg

2345_image_file_copy_46.jpg

2345_image_file_copy_47.jpg



目录
相关文章
|
2月前
|
SQL 安全 数据库
Django
【9月更文挑战第1天】Django
38 0
|
6月前
|
Python
深入Django(五)
Django的URL路由系统将URL映射到视图。创建URLconf涉及编写视图、定义URL模式(如`home`和`about`)并在项目主`urls.py`中包含应用URL。动态URL模式允许捕获数据,如`post/<int:post_id>/`,并在视图中使用。命名URL便于模板和视图中引用,通过`{% url %}`模板标签或`reverse`函数。正则表达式用于更复杂URL模式匹配。URL路由是Django中组织请求与响应的核心机制。
47 4
|
6月前
|
数据库 数据安全/隐私保护 Python
深入Django(六)
本文档介绍了Django的表单系统,用于处理用户输入和数据验证。首先,表单通过声明式方式定义,如在`forms.py`中基于模型创建表单类。接着,在视图中处理GET和POST请求,使用`is_valid()`和`save()`方法验证和保存数据。在模板中,使用标签渲染表单和错误信息。表单系统还包括内置及自定义验证规则,以及与模型的集成,如`ModelForm`方便数据保存。此外,还有表单集、表单继承和自定义字段等高级功能。表单系统简化了用户输入管理和数据安全。
43 4
|
6月前
|
Python
深入Django(三)
本文详细介绍了Django视图(Views)。视图是Django中处理用户请求并返回响应的函数或类,负责应用程序逻辑。文章通过实例展示了如何创建简单视图、使用类视图以及如何与模板配合动态生成HTML内容。此外,还提到了视图处理表单、权限认证和错误处理的功能。总之,Django视图是应用的核心组件,用于处理业务逻辑和用户交互。
32 2
|
6月前
|
数据库 Python
深入Django(八)
了解Django的管理后台,它是一个用于管理应用数据的内置Web界面。要启用它,需在`admin.py`中注册模型,创建超级用户,并访问服务器的`/admin/`路径。可自定义后台,如定义模型显示(通过`list_display`, `list_filter`, `search_fields`),定制表单界面(定义表单类和覆盖字段)以及进行高级定制,如字段选项和重写方法。管理后台支持添加、编辑和删除记录,以及批量操作。
42 2
|
6月前
|
SQL 中间件 Linux
深入Django系列
本文是Django入门教程的第一天,简要介绍了Django,一个遵循DRY原则的开源Web框架。核心特性包括ORM、自动URL路由、模板系统、表单处理和中间件支持。随后,文章指导读者如何搭建开发环境:安装Python,创建并激活虚拟环境,使用pip安装Django,创建项目及运行开发服务器。通过这些步骤,读者可以开始他们的第一个Django项目。
27 2
|
6月前
|
前端开发 数据管理 API
深入Django(二)
本文介绍了Django的模型(Models)系统,它是Django框架中处理数据库的核心部分。模型是通过Python类定义的,对应数据库中的表,属性代表表的字段。通过模型,可以方便地操作数据,如创建、查询、更新和删除记录。文中展示了如何创建`Author`和`Post`模型,以及如何使用ORM进行对象操作。此外,还提到了模型的高级特性,如字段选项、字段类型、关系以及自定义方法和属性,这些都是Django高效管理数据的关键。理解模型对于Django应用开发至关重要。
38 1
|
算法 前端开发 程序员
初识Django(一)
什么Django        Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。
1601 0
|
前端开发 关系型数据库 数据库
Django初探(二)
之前写过一篇Django的介绍,简单部署之后就没有深入跟进了。 Django初探 上周末去广州参加技术大会,在往返的飞机上,自己调试了下Django里面的内容。
1289 0