ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Django开发图书馆里系统1——基本介绍

2020-05-19 22:59:47  阅读:508  来源: 互联网

标签:SQLite Python 数据库 视图 Django 图书馆 MVC 介绍 数据


一. python环境

 

 我们选择3.8版本.直接官网下载对应版本安装即可。http://www.python.org/

查看版本可以在命令行输入python

 

 

django的安装首先https://www.djangoproject.com/download/下载,这里选择2.2。

我使用的是anaconda, 作用如下:

1)Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。

2)管理包

Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。

在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。

3)管理环境

为什么需要管理环境呢?

比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。

还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。

具体介绍可以参考 https://www.zhihu.com/question/58033789 或者阅读官网文档https://www.anaconda.com/

 下载我是直接去清华开源软件镜像站下载的,https://mirrors.tuna.tsinghua.edu.cn/,不过似乎在支持下载和不支持下载之间徘徊。

pip的方式我不太清楚,你可以试试,切换清华源然后下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask

python 大蟒 ['paɪθən]  &  anaconda 水蟒 [,ænə'kɑndə]
Anacondas原产于南美洲,而Python则天然存在于亚洲和非洲的热带地区。
相比之下,Anaconda更重,但python更长。
作为蛇,Python比anaconda更灵活。
Anaconda的着色图案被组织和安排得更有顺序,但python不是。
Anaconda是一个很好的游泳运动员,经常在水边发现,而python喜欢栖息在树上和干燥的栖息地。
Python作为宠物在人类中更受欢迎,但Anacondas通常不会被作为宠物饲养。
Anaconda由雌性产出新生蛇是很典型的,而Python是下蛋并孵化出来

二. ide 代码编辑工具-pycharm

在此称赞下jetbrain,良心啊,认证学生你可以白嫖pycharm(idea也可以)专业版到毕业

下载地址: https://www.jetbrains.com/pycharm/download/

PyCharm是由JetBrains打造的一款Python IDE。我们知道,VS2010的重构插件Resharper就是出自JetBrains之手。那么,PyCharm有什么吸引人的特点呢?

首先,PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……

另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython

三. 简单介绍下开发环境-Django

 

 

 MTV设计模式:

Django对传统的MVC设计模式进行了修改,将视图分成View模块和Template模块两部分,
将动态的逻辑处理与静态的页面展现分离开。而Model采用了ORM技术,将关系型数据库表抽象
成面向对象的Python类,将表操作转换成类操作,避免了复杂的SQL语句编写。MTV和MVC本质上
是一样的。

模型(Model):和MVC中的定义一样,处理数据逻辑
模板(Template):将数据与HTML语言结合起来的引擎,展示页面
视图(View):负责实际的业务逻辑实现

 

 

对比MVC和MVT两种模式区别

 

M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。

V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

Django中MVT的设计是遵守 MVC的流程去执行。

MVT即模型-模版-视图模式,其标准名称是有争议的。在MVC的解释中,视图描述了展现给用户的数据,是指所看到的数据,而不是如何看见它。在python中视图是指对某一特定URL的回调函数,因为回调函数描述了所要展现的数据。模版用于将内容与展现分离。在django中,视图描述了要展现的数据,而视图一般转交给模版。模版描述了数据如何展现,控制器则是指django框架本身,通过URL配置,系统将一个请求发送到一个合适的视图。

 

M全拼为Model(模块),主要封装对数据库层的访问, 数据处理,对数据库中的数据进行增、删、改、查操作。

V全拼为View(视图),界面显示,用于封装结果,生成页面展示的html内容。

C全拼为Controller(控制器),逻辑处理,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

 

MVC模块的核心宗旨就是:解耦,模型的复用,让不同的代码之间的耦合度降低,增强代码的扩展性和可移植性还有方便维护,模型不用关心处理结果展现,比如模型返回一些数据,然后交给不用的视图展现,可以使用不同的视图来访问同一个模型。方便测试, 比如,将业务逻辑代码写在servlet里面,需要部署到容器上,然后才能测试。而将业务逻辑代码写在类里面,可以直接用main()测试(不依赖容器)。

 

MVC即模型,里面存在视图与控制器模式,就是为那些需要为同样的数据提供多个视图的应用程序而设计的。它很好地实现了数据层与表示层的分离,特别适用于开发与用户图形界面有关的应用程序,能够提高效率,降低耦合度,增加代码的可移植性,可以更好的去维护代码。

控制器:控制器是用来处理用户命令以及程序事件,模型维护数据并提供数据访问方法;

视图:视图用于数据的显示,把数据库中的数据显示到页面上。

MVT执行顺序

设计模式: 核心思想是分工,解耦,让不同的代码之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容

1,客户端发出请求,与关系型数据库进行交互

2,路由接收请求,根据请求地址查找视图

3,视图接收,处理 找到相应的Model(数据交互)

4, 与关系型数据库进行交互 取得数据  

5,将取到的数据返回给Model

6,将数据交给view进行处理

7,将数据套入到需要的template,封装相对应的html,css,js编写的模板语言

8,将封装好的模板语言返回给view进行处理

9,客户端接受结果进行渲染html和css 执行js

MVT基于MVC,所以流程与MVC十分相似,客户端发送请求,根据请求地址去寻找视图,视图把接收并处理请求,访问数据库,提取数据,由视图返回结果到模板上,客户端接收渲染

 

MVC设计模式也可以叫做MVC的流程,从开头到结束,是怎样一步步执行的:

1,客户端发出请求

2,controll,接收请求,进行业务处理 发送给Model

3, 与关系型数据库进行交互 取得数据  

4,将取到的数据返回给Model

5,将数据交给controller.进行处理

6,将数据给view进行HTML,css,js等进行封装

7,返回封装好的HTML给controll

8,controll返回给客户端进行渲染HTML和css执行js

 

MVC的缺点:事物都有两面性,有好有坏,MVC也是这样,他的缺点如下

使用mvc,会增加代码量、相应地也会增加软件开发的成文,设计的难度也会增加,适合大型项目。

(1)视图跟控制器过于紧密的连接,(视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。【例如,不可能总是在jsp页面中直接访问模型,一般放在逻辑控制层进行处理,servlet】)
(2)增加了系统结构和实现的复杂性
(3)部分高级界面工具或构造器不支持MVC
(4)视图对模型数据的访问效率低(依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。【例如,页面的有一部分数据我并没有更新,但是提交到模型层照样会去获得返回显示 】)
(5)调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
     简单的小型项目,使用MVC设计反而会降低开发效率,层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用

四. 数据库

我采用的是Navicat连接的sqlite3。sqilite3是Django自带的数据库,很方便
https://www.runoob.com/sqlite/sqlite-tutorial.html

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

为什么要用 SQLite?

    1、不需要一个单独的服务器进程或操作的系统(无服务器的)。

    2、SQLite 不需要配置,这意味着不需要安装或管理。

    3、一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

    4、SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

    5、SQLite 是自给自足的,这意味着不需要任何外部的依赖。

    6、SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。

    7、SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。

    8、SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。

    9、SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

 

     

 

标签:SQLite,Python,数据库,视图,Django,图书馆,MVC,介绍,数据
来源: https://www.cnblogs.com/knightoffz/p/12920161.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有