扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
十年的洪江网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整洪江建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“洪江网站设计”,“洪江网站推广”以来,每个客户项目都认真落实执行。今天就跟大家聊聊有关Django框架的模型层是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
在MVC或者说MTV设计模式中,模型(M)代表对数据库的操作。那么如何操作数据库呢?
手动切换到数据库环境,然后敲入SQL语句?你知道这是个笑话!
我们是程序员,讲的是自动化,实现的是Python环境下的操作,所以我们必然是通过写Python代码的方式。
可是Python和数据库语言SQL是两码事啊,它根本操作不了数据库!没关系,我们可以在Python代码中嵌入SQL语句,比如下面的方式:
# 创建连接,这里先忽略创建方法 conn = ...... # 创建游标 cursor = conn.cursor() # 执行SQL,并返回收影响行数 effect_row = cursor.execute("insert into host (hostname,port,ip) values('ubuntu','22','10.0.0.2');")# 提交,不然无法保存新建或者修改的数据 conn.commit()# 关闭游标 cursor.close()# 关闭连接 conn.close()
但是问题又来了,Python怎么创建和数据库的连接呢?或者更直白的说Python怎么连接数据库呢?可以使用类似pymysql这一类的第三方模块(针对不同的数据库,有不同的模块)。于是我们可以进行如下的连接:
conn = pymysql.connect(host='137.78.5.130', port=3306, user='root', passwd='123456', db='test')
好了,这样似乎就Ok了。但是,如果你有很多的数据库操作,并且你的Python程序员不是专业的DBA,写的SQL语句很烂,甚至经常写错,怎么办?
聪明的人想出了一个办法:用Python语法来写,然后使用一个中间工具将Python代码翻译成原生的SQL语句,这样你总不会写错了吧?这个中间工具就是所谓的ORM(对象关系映射)!
ORM将一个Python的对象映射为数据库中的一张关系表。它将SQL封装起来,程序员不再需要关心数据库的具体操作,只需要专注于自己本身代码和业务逻辑的实现。
于是,整体的实现过程就是:Python代码,通过ORM转换成SQL语句,再通过pymysql去实际操作数据库。
最典型的ORM就是SQLAlchemy了,如果你的Web框架自身不带ORM系统,那么你可以安装使用它,SQLAlchemy使用者还是比较多的,本身功能也比较强大,大家可以自行学习。
Django自带ORM系统,不需要额外安装别的ORM。当然,也可以安装并使用其它的ORM,比如SQLAlchemy,但是不建议这么做,因为Django系统庞大,集成完善,模型层与视图层、模板层结合得比较紧密,使用自带的ORM更方便更可靠,并且Django自带的ORM功能也非常强大,也不难学。
Django的ORM系统体现在框架内就是模型层。想要理解模型层的概念,关键在于理解用Python代码的方式来定义数据库表的做法!一个Python的类,就是一个模型,代表数据库中的一张数据表!Django奉行Python优先的原则,一切基于Python代码的交流,完全封装SQL内部细节。
看完上述内容,你们对Django框架的模型层是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联-成都网站建设公司行业资讯频道,感谢大家的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流