Open keyfall opened 5 years ago
通过模型类.objects属性可以调用如下函数
运算符
静态文件部署 1.在项目根目录下创建一个static文件夹 2.设置setting.py 3.html调用
REST就是一种设计API的模式。最常用的数据格式是JSON。 编写API有什么好处呢?由于API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。 此外,如果我们把前端页面看作是一种用于展示的客户端,那么API就是为客户端提供数据、操作数据的接口。这种设计可以获得极高的扩展性。例如,当用户需要在手机上购买商品时,只需要开发针对iOS和Android的两个客户端,通过客户端访问API,就可以完成通过浏览器页面提供的功能,而后端代码基本无需改动
表现层状态转移,就是页面转到另一个页面,比如首页,文章列表,某篇文章,这是3个表现层,你在首页,进入文章列表,这是客户端的状态变了,之前没有文章列表的状态,现在有了,大概就是这个意思
Rest架构的主要原则
网络上的所有事物都被抽象为资源
每个资源都有一个唯一的资源标识符
同一个资源具有多种表现形式(xml,json等)
对资源的各种操作不会改变资源标识符
所有的操作都是无状态的
符合REST原则的架构方式即可称为RESTful
Restful Restful web service是一种常见的rest的应用,是遵守了rest风格的web服务;rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构). RESTful API(具有REST风格的API): 用URL定位资源,用HTTP动词(GET,HEAD,POST,PUT,PATCH,DELETE)描述操作,用响应状态码表示操作结果。
HTTP状态码
设计RESTful 让一个url能进行多个操作,只需要进行不同的HTTP动词,后台进行封装 比如对文章进行操作,删除文章,增加文章,修改文章,查看文章,这要是原来就需要进行4个url了 如果用rest思想,使用restful架构,只需要进行一个url,/article就可以了
#删除文章
DELETE /article/${acticleID}
#增加文章
POST /article/${acticleID}
#修改文章
PUT /article/${acticleID}
#查看文章
GET /article/${acticleID}
服务器无状态 由于REST架构限制,RESTful的服务器必须是无状态的,这意味着来自客户的每一个请求必须包含服务器处理该请求所需的所有信息, 服务器不能利用任何已经存储的“上下文(context,在这里表示用户的会话状态)”来处理新到来的请求,会话状态只能由客户端来保存,并且在请求时一并提供。 无状态请求易于实现负载均衡,分布式web系统下,有多个可用服务器,每个服务器都可以处理客户端请求。 如果是有状态请求,什么session,缓存都只保存在第一次请求的服务器,其他进行分布式的服务器没有保存的东西,服务器无法自由调度请求了。
HATEOAS(Hypermedia As The Engine Of Application State) 对于客户端的请求,服务器不仅返回所请求的资源,而且要返回客户端所处的状态和可转移的状态(就是超链接) 用户根据页面的内容点击进自己想看的页面,发送了请求,然后服务器返回内容,以及你到了这个页面可以进行的其他操作(状态变更了)
OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。 OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。 令牌与密码差异:
OAuth 2.0 规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。
下载django,虚拟环境
pip install django==2.1
pip install virtualenv
报错根据提示进行更改语句就行创建虚拟环境,激活,退出
利用django创建project,和startapp,项目名
django-admin startproject 项目名
python3 manage.py
startapp app名`数据库换mysql
进入setting.py 修改DATABASES 修改project 中的initpy 文件,设置默认连接MySQL
数据迁移
使用以下两个命令
设计模型类
设置编码时间
在setting.py修改:
创建管理员
python manage.py createsuperuser
注册模型类和自定义管理界面
在app下的admin.py加入下面代码 注册模型类
自定义管理界面
也可以这样写,在自定义类上用@进行关联
创建视图
定义视图处理函数 在app的views.py:
配置URL路由 项目的urls.py
路由分配
各自app的urls放到各自app文件夹下,然后项目的urls.py进行配置 在app下新建urls.py
项目的urls.py
创建模板
在templates目录中新建与应用同名的文件夹 新建html文件
在views.py中修改
配置远程访问
修改setting.py
ALLOWED_HOSTS = ['*', ]
启动服务
python manage.py runserver 10.25.58.6:8000
模型详解
字段类型
选项
实例
生成迁移文件并执行