基于Python的web的四种框架:
- Django
- Flask
- Tornado
- Web.py
什么是web
WEB:英文单词[网状物],主要用于表示计算机中的广域网络[world wide web](www)。 world wide web:全球广域网络,也称为万维网,是一种基于超文本和 HTTP 的全球性 的、动态交互的、跨平台的分布式图形信息系统,是建立在 internet 上的一种网络服务。
什么是框架
框架:提供方法属性的同时,也同时提供了事物处理逻辑,可扩展代码
什么是模块
模块:为了完成一件事或莫些事,而封装的代码,提供封装好的代码和属性
Django的基本操作
关于python环境下的django安装和检验
Dojango 属于Python众多第三方模块的序列,可通过 pip install Django ==1.11(这里的==1.11是特指下载安装django1.11版本 可选)
检查django的安装后检验:通过 命令行 输入django-admin –version 这是查询环境中是否包括安装好的django模块 返回回来的是一安装好的django版本信息,肉下载已安装好则表示已安装好,如无反馈即安装有问题即就要重新下载安装。
Django的优缺点势及架构模式
Django是一个功能十分强大的web开发框架,他优点提供了丰富的各种需要的功能;
- 强大的mvt项目开发架构
- 完善的模板视图支持
- 准确的模板地址映射
- 干笑的ORM数据操作
- 完善的后台管理
- 优秀的扁担处理功能
缺点是:
- 大包大揽: 对于一些轻量级应用不需要的功能模块Django也包括了,不如Flask轻便。
- 过度封装: 很多类和方法都封装了,直接使用比较简单,但改动起来就比较困难。
- 性能劣势: 与C, C++性能上相比,Django性能偏低,当然这是python的锅,其它python框架在流量上来后会有同样问题。
- 模板问题: django的模板实现了代码和样式完全分离,不允许模板里出现python代码,灵活度对某些程序员来说可能不够。
架构模式
MVC 软件架构: 软件是用来进行数据处理的,数据我们用 Model 来表示,根据软件的三层结构模型, 视图部分通过 View 进行表示,在视图 View 中,我们可以和用户进行数据交互,交互的数 据被提交到服务器,服务器根据用户提交的数据,经过控制器 Controller 进行判断并移交给 合适的函数进行处理的过程。
M(model) 模型 类、以及跟数据库相关的代码
V(view) 视图 页面
C(controller) 控制器 接受参数,分发请求
MVT 软件架构: Django 在处理的过程中,对于经典的 MVC 处理模式并不是非常认同,在实际项目开 发过 程中控制器 Controller 起到的作用非常的有限,所以 Django 将控制器部分也进行了 封装,但是同时扩展了视图 View 部分,增加了模板功能实现了前端网页的复用
M(model) 模型层
V(view) 视图层
T(templates) 模板层
分层管理
高内聚,低耦合
关于django的根目录各文件表示
Cd到主目录
项目文件结构如下:
|-- mysite (可随意命名) # 表示项目名称
|-- mysite # 根模块,根模块跟项目名称保持一致
|-- __init__.py # 模块描述文件
|-- settings.py # 项目的配置文件
|-- urls.py # 根路由模块
|-- wsgi.py # django实现wsgi,目前使用不到
|-- manage.py # 该文件是项目的命令文件,不需要我们修改
启动Django项目:
cd 项目主目录中来
python manage.py runserver #django项目启动
eg:
python manage.py runserver [port]
python manage.py runserver [ip:port]
关于在django创建子模块
cd 项目主目录
django-admin startapp <子模块名称>
|-- mysite(可随意命名) # 项目名称
|-- mysite # 根模块
|-- __init__.py # 模块描述文件
|-- settings.py # 项目的配置
|-- wsgi.py # 实现了wsgi web网关接口
|-- blog # 子模块
|-- migrations # 同步数据的迁移文件的文件夹
|-- __init__.py # 模块描述文件
|-- admin.py # 后台管理系统用来管理子模块中的模型类的文件
|-- views.py # 子模块的视图文件
|-- urls.py # 需要我们创建,子模块的路由文件
|-- models.py # 定义模型类
|-- tests.py # 测试文件
|-- apps.py # 定义子模块项目项的文件
|-- manage.py # 项目的命令文件
当子模块创建完成后,要求必须执行两项操作否则可导致路由系统
1、在根模块的settings.py配置文件中INSTALLED_APPS=["子模块名称"]
2、创建子路由,之后交给根路由来管理