django】【Python基础】django框架的特点是什么

2020-12-14 14:14发布

13条回答
20200921文 - 做更棒的自己!
2楼 · 2020-12-14 14:36

Django是一个开放源代码的Web应用框架,由Python写成。


1、Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。


2、它最初是被开发来用于管理劳伦斯出集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。


3、这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。


那些年很冒险的梦。
3楼 · 2020-12-14 15:19

一、Python兼容性

Django 2.0支持Python3.4、3.5和3.6。Django官方强烈推荐每个系列的最新版本。

最重要的是Django 2.0不再支持Python2!

Django 1.11.x是支持Python2.7的最后版本。

二、新特性

1.简化了URL路由语法

django.urls.path方法的语法更简单了。

例如以前的:

1

url(r'^articles/(?P[0-9]{4})/$', views.year_archive),

可以写作:

1

path('articles//', views.year_archive),

2.admin后台对移动端更加友好

Django最受大家欢迎的admin后台,具有响应式特性,支持主流的移动设备。

三、重要的向后不兼容

1. 某些地方删除对bytestrings的支持

例如,对于reverse,现在使用str代替force_text。

2. AbstractUser.last_name的最大长度增加到150

如果你有一个自定义的用户模型继承了AbstractUser,你需要生成并应用一个数据库迁移,使得 last_name的最大长度变为150。

如果你需要为 last_name保持30个字符的限制,可以如下使用自定义表单:

1

2

3

4

5

from django.contrib.auth.forms import UserChangeForm

  

class MyUserChangeForm(UserChangeForm):

  

last_name = forms.CharField(max_length=30, required=False)

如果你需要在admin中也保持这个约束,那么可以如下使用UserAdmin.form:

1

2

3

4

5

6

7

8

9

10

11

from django.contrib.auth.admin import UserAdmin

  

from django.contrib.auth.models import User

  

class MyUserAdmin(UserAdmin):

  

form = MyUserChangeForm

  

admin.site.unregister(User)

  

admin.site.register(User, MyUserAdmin)

以上就是针对历来框架的变化,感受的框架特点,不经常使用的小伙伴可能暂时感觉不出来效果,多多使用这个框架,大家都会得到意想不到的收获。


我是大脸猫
4楼 · 2020-12-14 16:35

Django简介

    Django是一种开源的大而且全的Web应用框架,是由python语言来编写的。他采用了MVC模式,什么是MVC?大家不要着急,MVC这么好的东西我在下面会精细的讲一下!Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。并于 2005 年 7 月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。


Django优点

强大的数据库功能

    用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

自带强大的后台功能

    在admin.py中写入需要实现功能的代码,几行简单的代码就可以实现你当管理员的梦。再也不用为设计管理员而发愁了!

优雅的网址

    在urls.py中用正则匹配网址,传递到对应的函数,随意你自己定义,网址可以如你所想,如你所愿。(需要注意的是:正则是一种独立的语法,并不是哪个语言所拥有的。)

具有模板系统

    模板系统大大的降低了开发者头疼脑热的概率。因为模板系统设计简单,容易扩展。代码,样式分开设计。查找更清晰,修改更容易!

缓存系统

    Django和memcached、redis或者其他的缓存系统联用,提高了页面的加载速度。让用户的体验度更好了!
templates 文件夹views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。

国际化

    这么好的东西,想不走上国际化都难啊。想要网页显示不同语言,比如中文、英文、还有各种语言。只需要在一个文件的设置中稍微那么修改一下。页面就会穿上各种语言的外衣。

Django 的 App 理念很好。

    App 可插拔,是不可多得的思想。不需要了,可以直接删除,对系统影响不大。
怎么样?Django是否强大到不可想象的地步了?不过大家也不用高兴的太早了。因为代码还是要写的,只不过用上了Django开发网站的时候更快速,更便捷了而已!


好了,开始正式跟大家说MVC 、MVT、ORM

MVC
大部分开发语言中都有 MVC
MVC 框架的核心思想是: 解耦.即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库
降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
M 表示 model,主要用于对数据库层的封装
V 表示 view,用于向用户展示结果
C 表示 controller,是核心,用于处理请求、获取数据、返回结果
M代表的是模型(Model), V代表的是视图(View), C代表的是控制(Contrle)

MVT
Django 是一款 python 的 Web 开发框架
与 MVC 有所不同,属于 MVT 框架(是不是跟没说一样?不过我真的找不到更合适的语句了)
M 表示 model,负责与数据库交互
V 表示 view,是核心,负责接收请求、获取数据、返回结果
T 表示 template,负责呈现内容到浏览器

什么是ORM?
给大家一个图吧:

ORM.png


最后在给大家说一下Django中的核心模块:在坚持一下就看完了

Django核心模块

urls.py
网址入口,关联到对应的 views.py 中的一个函数(或者 generic 类),访问网址就对应一个函数。小心在设置函数的时候写错单词哦!

views.py
处理用户发出的请求,从 urls.py 中对应过来, 通过渲染 templates 中的网页可以将一些想要看到的内容输入到网页上。

models.py
与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。

forms.py
表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作。

templates 文件夹
views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。这么好的东西,不用确实可惜!

admin.py
后台,这个就是可以用很少代码就能实现后台管理的神奇东东

settings.py
Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。给网页的语言更改就是在这个里面,记好了哈!!!



水默
5楼 · 2020-12-14 16:48

它集成了MVC 和 ORM这些技术。

它严格遵循MVC的模式,但它和平时我们用的MVC很不同,它自已有一套MTV(model-view-template)的模式 .要说django的特点一时间真没认真的和其它框架做比较。

不过它开发效率高真是很多框架不能比的。它和JAVA的面向接口编程的思想很不一样,python虽然也是面向对象的,但它系统集成的方式和JAVA很不一样,java 是用接口把系统灵活的分层,而python根本就不用写接口,这得益于python这种语言简洁的特点。


flame
6楼 · 2020-12-14 17:14

Django是一个开放源代码的Web应用框架,由Python写成。

1、Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。

2、它最初是被开发来用于管理劳伦斯出集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。

3、这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。


yjh
7楼 · 2020-12-14 17:30

强大的数据库功能

    用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

自带强大的后台功能

    在admin.py中写入需要实现功能的代码,几行简单的代码就可以实现你当管理员的梦。再也不用为设计管理员而发愁了!

优雅的网址

    在urls.py中用正则匹配网址,传递到对应的函数,随意你自己定义,网址可以如你所想,如你所愿。(需要注意的是:正则是一种独立的语法,并不是哪个语言所拥有的。)

具有模板系统

    模板系统大大的降低了开发者头疼脑热的概率。因为模板系统设计简单,容易扩展。代码,样式分开设计。查找更清晰,修改更容易!

缓存系统

    Django和memcached、redis或者其他的缓存系统联用,提高了页面的加载速度。让用户的体验度更好了!

templates 文件夹views.py 中的函数渲染 templates 中的 Html 模板,得到动态内容的网页,当然可以用缓存来提高速度。

国际化

    这么好的东西,想不走上国际化都难啊。想要网页显示不同语言,比如中文、英文、还有各种语言。只需要在一个文件的设置中稍微那么修改一下。页面就会穿上各种语言的外衣。


熊晓燕
8楼 · 2020-12-14 17:55

Django是一种开源的大而且全的Web应用框架,是由python语言来编写的。他采用了MVC模式,什么是MVC?大家不要着急,MVC这么好的东西我在下面会精细的讲一下!Django最初是被开发来用于管理劳伦斯出版集团下的一些以新闻为主内容的网站。一款CMS(内容管理系统)软件。

寂静的枫林
9楼 · 2020-12-15 09:36

1.功能完善、要素齐全:自带大量常用工具和框架(比如分页,auth,权限管理), 适合快速开发企业级网站。

2.完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档。开发者遇到问题时可以搜索在线文档寻求解决方案。

3.强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习SQL语言即可对数据库进行操作。

4.Django先进的App设计理念: App是可插拔的,是不可多得的思想。不需要了,可以直接删除,对系统整体影响不大。

5.自带台管理系统admin:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。

6.Django debug信息详尽: 很容易找出代码错误所在。


相关问题推荐

  • 回答 19

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MVT的框架模式,即模型M,视图V和模板T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比...

  • 回答 1

    使用类似pymysql的第三方模块,在Python代码中嵌入SQL语句,可以直接访问数据库。对于轻量级的SQLite,Django和Python原生支持,连第三方模块都不需要就可以访问。

  • 回答 3
    已采纳

    FlaskFlask确实很轻,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库入门简单,即便没有多...

  • 回答 4
    已采纳

    打开 Linux 或 MacOS 的 Terminal (终端)直接在 终端中输入windows 快捷键 win + R,输入 cmd,直接在 cmd 上输入1、新建一个项目django-admin.py startproject 项目名1以下命令要先进入项目目录下才能执行:cd 项目名2、新建app (一个项目可以有多个app...

  • 回答 5

    Django的默认数据库是sqlite3

  • 回答 3

    Django中避免sql注入的方法:1、对用户的输入进行校验;2、不要使用动态拼装sql;3、不要把机密信息直接存放;4、应用的异常信息应该给出尽可能少的提示;5、利用Dajngo的ORM来有效避免sql注入。什么是SQL注入?所谓SQL注入,就是通过把SQL命令插入到Web表单...

  • 回答 1

    中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能...

  • 回答 1

    项目主要页面介绍1.首页2.注册3.登录2.项目开发模式开发模式前后端不分离后端框架Django+Jinja2模板引擎前端框架Vue.js3.准备项目代码仓库源码托管网站1、码云(https://gitee.com/)2、创建源码远程仓库:website3、克隆项目代码仓库新建文件夹下载githttps:...

  • 回答 3

    from django.http import FileResponsefrom django.utils.encoding import escape_uri_path def build_download_response(filepath, filename):        构建下载文件的文件头    :param filepath: 文件路径    :param filenam...

  • 回答 2

    Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出...

  • 回答 10

    django现在在生产环境用得还是比较多的,但是只能说数量比较多,质量很差;意思就是,越大型的项目越不会选django,因为它封装得太好,不够灵活,一般快速上马项目可以,但是长期维护下来很难受一般如果有开发团队的都选flask和tornado...

  • 回答 2

    什么是 middleware什么时候使用 middleware我们写 middleware 必须要记住的东西写一些 middlewares 来理解中间件的工作过程和要点什么是 middlewareMiddlewares 是修改 Django request 或者 response 对象的钩子. 下面是Django 文档中的一段描述。Middlew...

  • 回答 2

    客户端与服务端交互(知识点)浏览器就是客户端服务端开放端口和连接即可客户端服务器代码实现# -*- coding: utf-8 -*-__author__ = 'HeYang'__time__ = '2018/6/7 2:57'import socket sock = socket.socket()sock.bind(('1...

  • 回答 11

    Django中间件有很多,入session、csrf、contexttype等,能力强的朋友还可以自己写中间件。

  • 回答 4

    django中间件主要有两个作用1·中间件是介于request 和 response 处理之间的一道处理过程,用于全局范围改变Django的输入和输出,简单的来说中间件是帮助我们在视图函数指向之前和执行之后都可以做一些额外的操作2·Django项目中默认启用了csrf保护,每次请求...

  • 回答 7

    中间件 Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。中间件Django中的中间件是一个轻量级、底层的插件系统...

没有解决我的问题,去提问