django是做什么的?
Django是基于Python的免费和开放源代码Web框架,它遵循模型-模板-视图(MTV)体系结构模式。它由Django Software Foundation(DSF)维护,这是一个由非营利组织成立的独立组织。
Django的主要目标是简化复杂的,数据库驱动的网站的创建。该框架强调组件的可重用性和“可插入性”,更少的代码,低耦合,快速开发以及不重复自己的原则。整个过程都使用Python,甚至用于设置文件和数据模型。Django还提供了一个可选的管理创建,读取,更新和删除界面,该界面通过自省动态生成并通过管理模型进行配置。
一些使用Django的知名网站包括公共广播服务,Instagram, Mozilla,华盛顿时报, Disqus,Bitbucket,和Nextdoor。
Django创建于2003年秋天,当时《劳伦斯日报》世界报纸的网络程序员Adrian Holovaty和Simon Willison开始使用Python来构建应用程序。西蒙·威利森(Simon Willison)的实习期结束前不久,雅各布·卡普兰·莫斯(Jacob Kaplan-Moss)在Django的发展中就被聘用了。它于2005年7月在BSD许可下公开发布。该框架以吉他手Django Reinhardt的名字命名。2008年6月,宣布新成立的Django软件基金会(DSF)将来将维护Django。
2015年7月,与一些Django联合创始人和开发人员建立联系的软件咨询公司Revolution Systems在劳伦斯举办了10周年纪念活动。
Django的设计理念如下:
松耦合——Django的目标是使堆栈中的每个元素彼此独立。
更少的编码——更少的代码,因此可以快速开发。
不重复自己(DRY)——一切都应该只在一个地方开发,而不是一次又一次地重复。
快速开发——Django的理念是尽一切可能促进超快速开发。
简洁的设计——Django严格按照自己的代码维护简洁的设计,并易于遵循最佳的Web开发实践。
Django的一些优势如下:
对象关系映射(ORM)支持——Django在数据模型和数据库引擎之间建立了桥梁,并支持包括MySQL,Oracle,Postgres等在内的大量数据库系统。
多语言支持——Django通过其内置的国际化系统支持多语言网站。因此,您可以开发支持多种语言的网站。
框架支持——Django内置了对Ajax,RSS,缓存和其他各种框架的支持。
GUI——Django为管理活动提供了一个很好的即用型用户界面。
开发环境——Django带有轻量级的Web服务器,以促进端到端应用程序的开发和测试。
Django是Python Web框架。和大多数现代框架一样,Django支持MVC模式。
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。
1,APP应用需要什么样的云服务器? 为了帮助大家了解如何使用阿里云云服务器及相关应用,阿里云的移动云团队开发了一个简单的APP应用:移动云相册,其中使用了ECS主要用作部署云相册的API服务(信息调用、列表调用)和缩略图处理,因为这个应用服务端使用了JAVA语言开发,因此在上面安装tomcat来部署应用。 具体部署 1)远程登录: 第一次购买ECS后,会把该ECS服务器的root账号、密码发送购买者的邮箱,然后购买者可以通过远程登录到ECS服务器,具体远程登录可以参考如下: Windows:中国//helpaliyun中国/manualspm=51763835185164lLZzn&helpId=59 Linux:中国//helpaliyun中国/manualspm=51763835185164lLZzn&helpId=59 2)安装web环境 根据自己应用特点选择安装相关web服务器tomcat或者jetty,阿里云提供了一条龙安装部署脚本,为开发者提供了更多的方便,请参考如下链接:中国//helpaliyun中国/manualspm=0000RGeYy4&helpId=129 3)打包应用 将web源码下载到本地,使用命令mvnpackage打成war包。如果不是maven工程,可以用类似ant打成war包。 4)上传war包 Linux下面可以使用sftp上传war包,上传war包到指定目录后进行解压,具体使用方式参考:中国//helpaliyun中国/manualspm=0000PnfpSL&helpId=1848 5)启动web服务 将tomcat或jetty服务启动 6)配置反向中国、绑定域名 具体配置信息参考:中国//helpaliyun中国/manualspm=0000Ti7iuA&helpId=532, 中国//helpaliyun中国/manualspm=0000MKbFj1&helpId=65 2,APP应用如何把存到云存储服务器中? 类APP应用的架构核心在于大量小文件的存储与访问,在文件数量较多的情况下将文件直接存储在硬盘上将极大影响应用的访问效率。阿里云存储服务OSS对海量小文件的存储及管理具有很大优势,不从服务端下载,减少了服务端压力。阿里云的OSS的备份机制也保证了文件的存储安全,其存储容量可以无限扩展,每秒请求数超过50000次,多线BGP中国络确保全国各地访问流畅。 使用阿里云OSS步骤: 1)登录阿里云官中国(aliyun中国)开通OSS 2)获取KEY及密钥 3)下载SDK (JAVA版下载地址为:中国//bbsaliyun中国/jobphpaction=download&aid=38817 帮助手册: 中国//aliyun_portal_storageossaliyuncs中国/oss_api/oss_javahtml/indexhtml ) 4)开始APP开发 很简单吧,下面是一个使用阿里云的OSS上传的代码样例: StringupLoadURI = OSSClientgenerateUploadUrl(ConstantsSERVER_URLGENERATE_URL,fileName, null); int status =OSSClientuploadFile(upLoadURI, path); 3,APP上云后如何使用云数据库? 为了帮助大家了解如何使用阿里云云服务器及相关应用,阿里云的移动云团队开发了一个简单的APP应用:移动云相册,其中使用了RDS中提供的MYSQL服务,数据库中主要存储了用户上传的信息,包括原图、缩略图的信息及存储地址,通过WEB端API向客户端提供数据调用。 使用阿里云RDS和使用本地数据库基本上没有区别,使用样例如下: 1)创建数据库实例 使用阿里云账号购买RDS后,可以创建数据库实例。 2)创建数据库以及管理账号 创建数据库名称以及管理账号,用于应用程序调用数据库连接。 3)访问数据库: 创建完数据库(test)后,在数据库test里添加账户:test、密码:test,可以在RDS控制台查看到数据库相关信息,从中能够得到数据库的外中国地址如:xxxxmysqlrdsaliyuncs中国,可以使用应用程序连接数据库,javajdbc连接数据库示例代码如下: String url = “jdbc:mysql://xxxxmysqlrdsaliyun:3306/test”; String username = “test” ; String password = “test” ; try{ Connection con = DriverManagergetConnection(url ,username , password ) ; }catch(SQLException e){ eprintStackTrace() ; //需要对异常做处理
不过,既然接受了Python的简单易用和快速开发优势,作为tradeoff,就要学会接受和处理Python的一些缺点。用django作数据服务器两年多,确实会有一些性能问题。
1异步django的http请求是同步的,通过gevent的协程来实现异步就解决了,很快。
2缓存和队列用ZeroMQ、Memcached来做缓存和队列就解决了。
3影响性能的函数如果真的有CPU密集型的函数影响性能,可以编译成C来解决性能问题,一些矩阵操作也可以通过numpy来解决
0条评论