作者: seo

  • wps 的官网最新下载入口是什么

      DODO是一个领先的去中心化交易所( DEX ) 平台,通过其创新的做市算法(PMM)彻底改变了代币交易。凭借其用户友好的界面,Dodo 为用户提供无缝的交易体验,确保以太坊区块链上快速、安全的交易。本文将为大家讲述的是DODO 项目概述,DODO 有哪些产品功能和独特的用例?并大家介绍DODO 项目风险评估与建议。

      

      $DODO 基本信息:

      创建日期: DODO 于 2020 年成立。

      创始人:

      Radar Bear(联合创始人,首席执行官)

      Qi Wang(联合创始人)

      Diane Dai(联合创始人兼首席营销官)

      Eric Yang(合作伙伴关系负责人)

      融资信息:

      种子轮: 600,000 美元(2020 年 8 月 29 日)

      私募轮: 500 万美元(2020 年 10 月 12 日)

      投资者:

      三箭资本

    wps的的官网最新下载网站是多少(wps下载电脑版没反应怎么解决)
      潘特拉资本

      框架风险投资公司

      币安实验室

      星系

      IOSG Ventures 等

      基本目标和愿景:

      目标: DODO 旨在利用其创新的主动做市商(PMM)算法提供高效的链上流动性。

      愿景: 通过提供一个可靠、可扩展和高效的去中心化交易平台,超越传统的自动做市商(AMM),从而彻底改变去中心化金融(DeFi)。

      服务/产品提供:

      去中心化交易平台: 通过流动性池促进加密货币交易。

      主动做市商(PMM): 一种独特的算法,旨在提供比传wps官网最新的下载的方法怎么找统 wps office的免费版的下载入口怎么找 AMM 更好的流动性和更低的滑点。

      跨链操作: 在多个区块链上运行,包括以太坊、BNB 链、Polygon、Aurora、Conflux、Base 和 Manta。

      答案是肯定会的,通过以下几点确认 #DODO助力Meme发行

      区块链平台:

      DODO 在多个区块链平台上运行,包括以太坊、BNB 链、Polygon、Aurora、Conflux、Base 和 Manta,增强了其互操作性和可访问性。

      智能合约功能:

      DODO 的智能合约促进流动性池的创建和管理、交易的执行以及奖励的分配。

      代币经济学:

      代币符号: DODO

      市值: 103,826,055.89 美元

      价格(截至最新数据): 0.1333 美元

      共识机制:

      利用其运行的区块链平台的底层共识机制(例如,以太坊的权益证明)。

      可扩展性:

      DODO 的 PMM 算法旨在处理高交易量,滑点最小化,从而有助于更好的可扩展性。

      高效交易: DODO 的平台为交易者提供高效且低滑点的交易体验,使其成为零售和机构交易者的理想选择。

      流动性提供: DODO 允许用户提供流动性并赚取奖励,从而为 DeFi 生态系统的整体流动性做出贡献。

      跨链交易: 实现不同区块链网络之间的无缝交易,增强去中心化金融的可用性和采用率。

      行业: 去中心化金融(DeFi)

      市场规模:

      DeFi 市场经历了指数级增长,DeFi 协议的总锁定价值(TVL)已达到数十亿美元。

      竞争对手:

      Uniswap: 领先的基于 AMM 的去中心化交易所(DEX)。

      SushiSwap: 另一家知名的基于 AMM 的 DEX,提供类似的服务。

      1inch、Balancer: 以其聚合和流动性解决方案而闻名。

      增长潜力:
    wps官网最新下载的网站是多少
      随着越来越多的传统金融服务向去中心化转型,DeFi 领域有望实现显着增长。 DODO 的创新PMM 算法使其具备竞争优势。

      趋势:

      跨链解决方案的采用日益增加。

      机构对 DeFi 的兴趣和参与度上升。

      对 DeFi 协议的可扩展性和效率的关注不断增加。

      锚定池 (Pegged Pool):DODO 的锚定池功能为稳定币和 BTCFi 资产(如以 BTC wps的电脑版的下载入口怎么找 作为担保的衍生资产)提供了高效的流动性管理。这意味着交易这些资产变得更加稳定和可靠,对于需要稳定价值作为基础的 DeFi 应用尤其重要。锚定池通过自动调整池内的资产比例来维持价格稳定,这对于 Meme 币等可能波动剧烈的资产也是一个优势,因为它可以帮助在波动中维持一定的流动性和价值稳定。

      一键发币功能:DODO 提供了跨多链的一键发币功能,这大大降低了发行新 token 的技术门槛。尤其对 Meme 币的开发者来说,这意味着他们可以快速、低成本地在多个区块链上发行自己的 token。这种便利性促进了 Meme 币的快速发行和市场上线,增加了市场的多样性和活跃度。同时,对于 BTCFi 项目,这也意味着他们可以更容易地创建和发行基于或与 Bitcoin 相关联的资产。

      自主挖矿机制:DODO 支持用户在平台上进行自主挖矿,用户可以创建自己的wps的官网下载入口是多少挖矿活动并使用任何 token 作为奖励。这对于 BTCFi 资产和 Meme 币来说提供了新的激励机制。通过自主挖矿,用户可以用 BTCFi 或 Meme 币作为奖励来吸引更多的流动性提供者,从而增加这些资产的流动性和知名度。

      跨链交易和流动性聚合:DODO 的超级聚合器 DODO X 提供跨链交易服务,聚合了不同链上的流动性。这对于 BTCFi 资产和 Meme 币来说,意味着用户可以在不同的区块链之间更方便地进行交易和转换资产,增强了这些资产的流动性和可用性。通过聚合不同链上的流动性,交易效率和价格都得到了优化。

      社区和开发者支持:DODO 的平台特性,如私人池(Private Pool)设计用于市场制造者,允许更灵活的流动性管理。这些特性不仅吸引了更多的开发者和社区参与者,也为 BTCFi 资产和 Meme 币的开发和推广提供了平台。通过提供这些工具和环境,DODO 实际上在促进这些新兴资产类的发展和创新。

      潜在风险:wps office 官方的下载的入口(wps office下载不了怎么办)

      技术风险: 智能合约中的漏洞可能导致攻击和黑客事件(例如,2021 年 3 月的 200 万美元黑客事件)。

      市场风险: 加密货币市场的高波动性可能影响用户信心和流动性。

      监管风险: 监管框架的变化可能影响 DeFi 协议的运营和采用。

      未来计划和更新:wps电脑版下载的地址在哪

      增强安全措施: 实施先进的安全协议以防止未来的攻击。

      扩展: 进一步的跨链集成,以支持更广泛的资产和网络。

      创新功能: 引入新的金融工具和产品,以吸引多样化的用户群体。

      社区倡议: 通过治理代币和投票机制加强社区参与。

      总结:

      DODO 是一个有前景的去中心化交易平台,利用创新的 PMM 算法提供高效的链上流动性。

      尽管面临安全漏洞等挑战,DODO 由于其独特的价值主张和不断扩展的生态系统,具有显着的增长潜力。

      建议:

      对于投资者: 考虑将 DODO 作为多元化投资组合的一部分进行投资,鉴于其独特的 PMM 算法和在 DeFi 领域的增长潜力。

      对于用户: 参与 DODO 的流动性池可能会带来丰厚的回报,但了解潜在风险和平台更新至关重要。

      对于团队: 专注于增强安全措施和扩展跨链互操作性,以保持竞争优势和用户信任。

      数据分析:

      最近的时间序列数据表明价格波动,近期呈上升趋势,表明市场信心增强。

      总锁定价值(TVL)和交易量的增加反映了 DODO 用户基础和流动性的扩展。

      通过不断创新和应对潜在风险,DODO 可以巩固其在快速发展的 DeFi 领域作为领先去中心化交易平台的地位。

      以上就是DODO项目全面概述:DODO币项目投资价值分析的详细内容,更多关于DODO项目报告的资料请关注脚本之家其它相关文章!

      声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!

      Tag:DODO  

  • wps office 的官方的下载的网址在哪

      在互联网中,使用IP地址与服务器进行通信根本行不通,原因如下:

      1.不好记忆如:学校官网的IP地址是"39.104 .16.126",难以记忆;

      2.IP地址会经常发生变更,所以通过IP地址去访问某台机器就容易出现无法访问的情况;

      此时DNS就应运而生了;那DNS解决了什么问题

      DNS主要用来维护域名与IP地址的对应关系。将(好记忆的字符串)与(不好记忆的P地址)

      进行关联;

      jd.com –> 1.1.1.1

      tb.com –>2.2.2.2

      域名系统 DNS (Domain Name System)主要功能是将用户请求的域名转换为IP地址;DNS就像一位"翻译官”,它的基本工作原理可以用下图来表示;

      在这里插入图片描述

      由于因特网的用户数量wps office 的官方下载地址是什么较多,所以因特网在命名时采用的是层次树状结构的命名方法。

      互联网中的域名是有结构有规划的;由于域名进行了分级,在进行域名和P地址解析时能更容易找到;。域名具备全球唯一性;

      在这里插入图片描述

      根域:知道所有顶级域名服务器的域名和地址wps官网最新下载的地方在哪

      全世界只有13组根服务器,其中10台设置在美国,另外的三台设置与英国,瑞典,日本;因为UDP端口的原因,不能在扩建新的服务器了。 顶级域:知道所有顶级域名服务器下注册的所有二级域名的IP地址

      顶级域有两种:通用域(com、cn)域和国家域(hk、 jp);顶级域名由ICANN(互联网名称与数字地址分配机构)委任的注册机构负责运行; 二级域:负责一个区的域名服务器(taobao.com)

      无需到ICANN进行申请,只需要到运行顶级域的注册机构(阿里、腾讯)去申请即可如果申请的域名没有被注册,也没有被注册为商标,仅需要缴纳一笔年费即可获取 三级域或主机名:

      根据服务器所提供的业务功能,选择配置对应的主机名称解析记录,比如(www、ops)

      下面的示例则概述了本地解析器没有域名对应的缓存,DNS 查询所需的步骤:

      1、用户在浏览器中输入example.com,则向本地域名服务器开始进行递归查询。

      2、本地域名服务器采用迭代查询的方法,向根域名服务器进行查询。

      3、根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器﹒ TLD(top-level domain)的IP地址。·

      4、本地域名服务器向顶级 wps的官网最新下载网址在哪里域名服务器.com TLD进行查询。

      5、.com TLD服务器告诉本地域名服务器,下一步查询example.com权威域名服务器的IP地址。·

      6、本地域名服务器向example.com 权威域名服务器发送查询。

      7、example.com权威域名服务器告诉本地域名服务器所查询的主机lP地址。

      8、本地域名服务器最后把查询的IP地址响应给浏览器。

      在这里插入图片描述

      在这里插入图片描述

      1.4.1 递归查询

      是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。

      1.4.2 迭代查询

      是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

      1.5.1 A记录

      A 记录可实现将域名指向 IP 地址,也称为正向解析;正向解析:域名–>DNS服务返回 IP

      在这里插入图片描述

      1.5.2 PTR

      PTR记录可以实现IP查找域名,也称为反向解析;

      反向解析:IP–>DNS服务返回域名;(主机域 内网使用;)

      在这里插入图片描述

      1.5.3 CNAME

      当需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录;最常用 CNAME 的场景有 WAF、CDN

      在这里插入图片描述

      1.5.4 NS

      客户端查询DNS服务,如当前DNS无法提供权威解析,则返回一条NS记录;客户端在通过 NS记录中提供的DNS权威服务器进行解析;在这里插入图片描述

      企业常规做法:购买域名、完成ICP备案,并使用公网DNS服务(万网…)进行免费(付费)解析·既然企业可以通过公网来完成域名解析&wps的免费版的下载的入口#xff0c;为何还要自建IDNS呢?

      1.内网web服务,例如: jenkins、 jumpserver、elk等,不适合解析至公网

      2.内网中间件服务db、mql等,会经常迁移或扩缩容,应该使用域名对外提供,便于维护;

      3.服务器都有hostname,hostname应该设置为FQDN,如何维护主机名和主机的内网P的关系;

      FQDN:(Fully Qualified Domain Name) FQDN = Hostname + DomainName

      综上:我们需要构建至少—套企业内部的DNS服务;

      BIND(由美国加州大学开发并且维护的)、BIND`是一个开源、稳定、且应用广泛的DNS服务。

      开源:指BIND服务源代码是开放的;稳定:指BIND服务运行非常稳定;广泛:政府企业、单位机构、学校、等;

      BIND提供(域名解析服务、权威域名服务、DNS调试工具)

      域名解析服务:将域名解析为IP地址

      权威域名服务:能从该服务器查询到完整域名对应的IP地址,则这台服务器就算权威解析;

      DNS调试工具:主要提供DNS客户端调试工具,供客户端使用;

      1.环境准备

      2.安装wps 的官网最新下载的网站

      Bind的安装非常简单,只需要通过yum 即可完成安装;bind提供主程序包;bind-utils提供工具包;

      2.客户端解析验证

      1.配置 DNS服务器指向:在 /etc/resolv.conf 里配置 DNS的 ip 地址

      3.BIND配置文件

      自定义域分为如下两类:

      主机域(内网):

      主机域其实是一个假的域名;主机域是不能解析到互联网上;主机域它只对局域网提供服务;

      业务域(公网):

      业务域一般都是真实可用的;业务域是需要对外网用户提供服务的域名;

      2.4.1 自定义区域配置文件

      区域 zone 文件定义在 /etc/named.conf 配置;

      也可以配置在自定义的其他文件里,并在 named.conf里 include声名一下

      注意文件的权限,属主 root 属组 named, 文件权限 640

      自定义一个域名:

      1.自定义区域配置文件;(告诉bind服务,我提供某某的解析,数据库文件位置)

      2.自定义区域数据库文件:

      自定义域

      自定义数据库文件

      注:;为注释

      3.检查配置文件语法

      4.检查区域数据库文件配置

      5.重载DNS服务器

      6.客户端测试解析域名

      用户通过DNS服务器172.16.1.91解析www.job.com。

      1.添加job.com区域配置文件

      2.添加区域数据库文件,配置NS记录,返回 DNS权威服务器地址

      3.该域的DNS权威服务器为172.16.1.91

      4.添加该域的CNAME解析记录,解析至 www.bertwu.com域名上

      1.添加域配置文件wps的官网下载地方

      2.添加数据库表文件

      3.重启并测试

      反向区域文件名称为 逆向网络地址 加 .in-addr.arpa. 后缀组成反向区域数据库文件 完全格式为1.16.172.in-addr.arpa.(DNS服务器地址为172.16.1.91时)

      1.新增区域配置文件,在主/etc/named.conf中新增反向区域配置

      2.配置数据库配置表文件

      3.检查配置语法重启

      4.测试

      就是查询本机不存在的域名,会帮你查询。如果关闭,只能查询本机已经配置的域名。

      如果要建立一个授权域名服务器,仅提供本地已存在域名解析;那么将 recursion 参数设置 no;如果要建立一个递归 DNS 服务器,那么需要将 recursion 参数设置 yes;如果递归 DNS 服务器有公网 IP 地址,则需要开启访问控制功能,只有合法的用户才可以发起查询。

      参数选项作用recurisonyes/no是否开启递归查询请求allow-recursion`{address_match_listany

      3.2.1 开启递归查询

      BIND默认配置中的 recurison 参数是启用的;

      1.配置仅允许 172.16.1.0 网段用户可以查询(可选);

      2.使用客户端查询系统中存在的域名;

      3.使用客户端查询系统中不存在的域名(让BIND进行递归查询,后续进行迭代查询);

      1.查询存在BIND服务器中的域名

      2.查询不存在BIND服务器中的域名

      3.2.2 关闭递归查询测试

      1.修改/etc/named.conf文件

      2.查询BIND服务器没有的域名,会提示警告

      3.查询BIND已有的域名,不受影响

      辅助DNS是DNS容灾备份服务:在主DNS和辅DNS之间建立区域数据传输机制,当主DNS遇到故障或者服务中断时,辅DNS仍可以继续提供解析服务,因此保障业务稳定运行。

      辅助DNS的优势:wps office的免费版下载地方是什么(金山wps官网最新首页下载)

      容灾备份,降低业务中断风险:主DNS系统故障,辅助DNS可继续提供域名解析服务,保障业务可用性。负载均衡,流量均摊降低负载:当辅助DNS与主DNS同时对外提供解析服务时,可以达到流量负载均衡的效果。

      在这里插入图片描述

      4.3.1 环境准备

      1.确保防火墙规则开放(建议关闭);

      2.保持主从服务器时钟一致;

      3.搭建完主从后,若修改主服务器域配置,Serail Number 必须递增,否则不同步;

      4.3.2 主辅同步配置要点

      1.主DNS修改named.conf配置文件,在option段添加如下内容:

      添加 allow-transfer:允许哪些IP地址能同步Master配置信息;添加also-notify:Master主动通知Slave域名变发生了变更;

      2.辅DNS修改named.conf配置文件:

      添加masterfile-format text:同步的文件类型修改为text否则文件类型为data;辅助DNS添加对应的区域配置文件,类型为 slave,同时masters 参数指向主DNS地址;辅助DNS不可主动修改DNS数据库文件;

      4.3.3 Master服务器配置

      1.区域配置文件

      2.添加区域数据文件(需要多添加一条NS记录)

      3.检测语法,重启服务

      4.3.4 Slave服务器配置

      1.安装bind服务

      2.修改并添加区域配置文件

      4.最终的文件如下

      5.检查语法重启服务

      4.3.5 测试主辅解析

      4.3.5 测试主辅同步

      主新增一条解析记录,然后滚动 serial

      测试

      查看辅,可以看到的确将新的解析记录同步过来了

      4.3.6 配置DNS高可用

      1.linux配置

      2.windows配置

      在这里插入图片描述

      5.3.1 父域配置(Master)

      1.区域配置文件此前可以复用之前主辅配置,所以无需修改;

      2.区域文件数据库文件,将 ops 三级子域授权给子域服务器;

      5.3.2 子域配置

      1.安装bind

      2.修改主配置文件,然后增加子域的配置文件

      3.添加区域数据数据库文件

      4.检查语法,启动服务

      5.测试

      解析父域名

      问题:由于父域与子域互相维护不同的区域配置,它们之间并不存在任何的联系,所以子域在解析父域的域名时,它并不会直接通过父域来获取权威的解析记录,那它会怎么做呢?

      第一步:它会先找顶点根域;

      第二步:寻找找 com 域对应的 DNS 服务器;

      第三步:寻找 bertwu 域对应的 DNS 服务器,而后获取 www 对应的解析记录;这种查找模式是由 DNS 的机制所决定的;

      解决的方法:明确告诉子域,让其能找到父域进项查询解析,而无需查找根域;(需要配置 DNS 的转发)

      转发指的是将域名查询请求,转至某一台服务器解析(被转发的服务器必须允许为当前服务器做递归)

      转发分为两类;

      区域转发:仅转发对某特定区域的解析请求;全局转发:针对本地没有通过 zone 定义的区域查询请求,统统转发;

      转发参数:

      全局转发示例配置(所有本地不存在的域名都进行转发)

      区域转发示例配置(符合该区域则进行条件转发)

      6.3.1 子域配置转发

      1.在子域服务器上,添加父域的域名,然后配置转发;

      2.检查语法并重载

      3.通过子域的地址解析父域的域名

      智能DNS就是根据用户的来源地域,自动智能化判断来路IP返回给用户,而不需要用户进行选择;

      传统DNS解析,不判断访问者来源,会随机选择其中一个IP地址返回给访问者。智能DNS解析,会判断访问者的来源,为不同的访问者智能返回不同的IP地址,可使访问者在访问网站时可获取用户指定的IP地址,能够减少解析时延,并提升网站访问速度。

      比如一个企业的站点三个运营商的带宽都有:电信、联通、移动;同样来自三个不同 运营商网络的访问用户,假设电信用户访问企业网站的时候,智能DNS会自动根据IP判断,返回电信服务器节点IP给电信用户,其他运行商也同理;

      电信用户:访问 www.bertwu.com 返回1.1.1.1联通用户:访问 www.bertwu.com 返回2.2.2.2移动用户:访问 www.bertwu.com 返回3.3.3.3

      在这里插入图片描述

      实现智能DNS需要VIEW视图以及ACL访问控制列表协同完成;

      在这里插入图片描述

      7.2.1 ACL访问控制

      访问控制列表(Access Control Lists,ACL)

      ACL访问控制列表,是用来限制哪些主机可以通过DNS查询,哪些不可以;系统默认内置了四种ACLany:允许所有主机节点查询;none:拒绝所有主机节点查询;localhost:仅允许本地接口网络主机查询;localnet:本地子网所有IP;

      当然内置的可能无法满足企业需求,所以我们也可以自定义ACL规则;

      定义的acl规则如何使用

      7.2.2 VIEW视图功能

      view 语句定义了视图功能,视图是BIND9提供的强大功能,允许DNS服务器根据不同的客户端,请求相同的域名,但返回不同的解析结果;

      view语法示例:

      维护一个主机域;根据不同环境的IP地址,查询相同域名,返回不同的结果;(企业常用)维护一个业务域,根据不同的运行商IP地址,解析到不同的地址;(需要大量IP地址库)

      7.3.1wps office免费版下载的地址是多少 定义ACL规则

      7.3.2 总配置文件如下

      默认域名解析与测试环境保持一致

      生产环境数据库

      默认环境数据库,只需要对test目录做 一个软连接到default目录,注意权限属组为named

      7.3.3 测试不同ip请求同一域名www.example.com 返回不同解析

      7.3.4 多域名智能DNS实现

      只需要在view视图中定义zone 然后写相应的zone区域数据库文件即可

      需要default返回测试环境定义的ip 只需要给default/bertwu.com.zone为 test下面对应的文件的软连接或硬连接即可。

      基于TSIG wps电脑版的下载的地址是多少 KEY实现多view主从同步,TSIG KEY是基于对称密钥加密技术实现的DNS报文认证机制。·密钥生成后存放至通信双方的配置文件中,报文传送前使用对称加密技术;

      7.4.1生成TSIG-KEY

      使用BIND自带的工具ddns-confgen生成 TSIG-KEY,每个view需要一对TSIG-KEY

      执行三次,得到三对对称秘钥

      master主配置文件

      slave从配置文件

      测试

      master :

      slave:

      修改vmnet8网卡

      在这里插入图片描述

      删除本地hosts文件,然后浏览器测试。

  • wps office免费版的下载的地方怎么找

      DNP3.0规约分析仪使用简单,打开软件就可以显示数据发送界面,可以在软件捕获接收数据、捕获发送数据、显示捕获数据,随后将数据保存 wps的电脑版的下载的网站在哪里(wps下载电脑版官方下载官网最新安装)为dat,方便你在其他软件使用,软件界面提供详细的发送命令设置功能,当你需要测试协议的时候就可以在软件编辑发送内容,从而使用内置的命令独立发送,支持召唤 Class数据、召唤遥信状态、召唤遥测数据、电度冻结、召唤电度数据等命令设置,每种命令都提供多种选择,让用户在分析DNP3.0的时候更方便!

      wps office的免费版下载的地址在哪(wps官网最新下载电脑版下载)49d63376bdd359e55ff4260bad875fe1.pngwps office的免费版的下载地方怎么找

      软件功能

      1、DNP3.0规约分析仪功能丰富,在软件连接通道就可以开始测试

      2、软件提供发送命令设置,可以在软件显示发送队列
    wps的免费版的下载的方法的方法
      3、可以显示多次发送的内容,软件接收数据显示在独立窗口

      4、支持将数据保存,接收测试数据就可以将其保存在dat文件
    WPS office官网最新的下载网站的方法
      5、支持多种命令,可以选择遥控选点命令、遥控执行命令、遥控(选点并执行)命令

      6、支持召唤 RTU IIN(80.1),清除 RTU IIN(80.1),这些命令都是软件提供的wps的的官网下载的地址在哪(wps下载电脑版没反应怎么办)

      7、支持批量测试功能,可以对界面的内容直接发送,从而批量分析
    WPS office官网最新的下载地址是什么
      8、在信息控制界面可以选择接收暂停显示、发送暂停显示、结果暂停刷新、全部暂停

      软件特色

      1、DNP3.0规约分析仪使用简单,发送信息自动捕捉

      2、打开软件就可以自动显示发送信息窗口,每

  • WPS office官网最新的下载方法的方法

      

      用于搭建Web应用程序免去不同Web应用相同代码部分的重复编写,只需关心Web应用核心的业务逻辑实现

      接收并解析HTTP请求,获取具体的请求信息处理本次HTTP请求,即完成本次请求的业务逻辑处理构造并返回处理结果——HTTP响应

      如何搭建工程程序

      工程的组建工程的配置路由定义视图函数定义如何获取请求数据(操作request对象)

      如何构造响应数据(构造response对象)

      框架提供的其他功能组件的使用

      数据库

      模板

      admin

      重点

      MVT流程:掌握M,V,T的每个模块的功能,了解MVT的流程

      

      创建Django项目和应用

      django-admin startproject name

      python manager.py startapp name

      视图和ULR

      视图的请求和响应

      URL的匹配路径

      简介

      Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。

      Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。

      特点

      重量级框架

      对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速。
    wps的的官网最新的下载网址怎么找
      提供项目工程管理的自动化脚本工具

      数据库ORM支持(对象关系映射,英语:Object Relational Mapping)

      模板

      表单

      Admin管理站点

      文件管理

      认证权限

      session机制 缓存

      MVT模式

      有一种程序设计模式叫MVC,其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

      MVC的全拼为Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

      MVC模式说明

      

      M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。V全拼为View,用于封装结果,生成页面展示的html内容。C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

      Django的MVT

      

      M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

      注:差异就在于黑线黑箭头标识出来的部分

      为什么要搭建虚拟环境?

      举例子:

      A项目需要的环境: python2.7 + django1.1B项目需要的环境: python3.7 + django2.2

      不装个虚拟环境那就难搞了,python环境中不能同时安装django1.1和django2.2,

      所以就需要虚拟环境进行隔离

      windows环境:

      安装virualenv(这个才是真正才能创建虚拟环境)

      

      新建一个文件夹存放虚拟环境

      

      新建虚拟环境

      虚拟环境名称为my_django,自己命名即可

      virtualenv my_django

      

      进入并且激活虚拟环境

      去到虚拟环境中的Script目录下

      

      执行activate 进行激活虚拟环境

      

      检查虚拟环境 pip list

      

      下面这个是真实环境

      

      这样环境就隔离了。

      后面需要安装第三方的包,先进入虚拟环境再安装

      退出虚拟环境

      直接在虚拟环境中执行deactivate命令,就可以退出虚拟环境了,有的可能需要.bat,有的不需要

      

      安装virtualenvwrapper

      上面每次进入virtual我们都需要进入到virtualenv的目录下,一旦virtualenv过多,就麻烦了,我们可以使用Virtualenvwrapper来方便地管理python虚拟环境。

      

      设置WORK_HOME环境变量

      给虚拟环境设置一个专门的目录

      

      配置电脑系统环境变量,新建系统变量 -> 变量名:WORKON_HOME ->指定路径:

      G:python_webcodeworkpaceenvs

      

      通过设置WORKON_HOME路径,就给我们的python虚拟环境指定了一个存放位置

      注意: 环境变量配置好之后,要重开cmd,这样环境变量才生效!!

      新建虚拟环境

      

      因为前一步设置了WORK_HOME,所有虚拟环境将安装到:G:python_webcodeworkpaceenvs

      退出虚拟环境

      

      进入虚拟环境

      workon #列出所以目录下虚拟环境

      workon 虚拟环境名称 # 进入虚拟环境

      

      删除虚拟环境

      

      pycharm结合virtualenv虚拟环境使用

      只要把pycharm的环境变量选择为虚拟环境的中的python环境即可。

      

      要选择虚拟环境中的 python.exe 文件

      

      Linux环境:

      安装虚拟环境的命令 :

      安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:

      创建虚拟环境的命令 :

      提示:如果不指定python版本,默认安装的是python2的虚拟环境

      在python2中,创建虚拟环境

      在python3中,创建虚拟环境

      

      提示 :

      创建虚拟环境需要联网创建成功后, 会自动工作在这个虚拟环境上工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”

      如何使用虚拟环境?

      查看虚拟环境的命令 :

      

      使用虚拟环境的命令 :

      

      退出虚拟环境的命令 :

      

      删除虚拟环境的命令 :

      WPS office电脑版下载的方法怎么找

      如何在虚拟环境中安装工具包?

      提示 : 工具包安装的位置 :

      python2版本下:

      python3版本下:

      python3版本下安装django-1.11.11的包 :

      

      查看虚拟环境中安装的包 :

      

      步骤

      创建Django项目

      django-admin startproject name

      创建子应用

      python manager.py startapp name

      创建工程

      在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。

      在django中,项目工程目录可以借助django提供的命令帮助我们创建。

      创建

      创建工程的命令为:

      例如:想要在桌面的code目录中创建一个名为bookmanager的项目工程,可执行如下命令:

      执行后,会多出一个新目录名为bookmanager,此即为新创建的工程目录。

      工程目录说明

      查看创建的工程目录,结构如下

      

      与项目同名的目录,此处为bookmanager。settings.py是项目的整体配置文件。urls.py是项目的URL配置文件。wsgi.py是项目与WSGI兼容的Web服务器入口。manage.py是项目管理文件,通过它管理项目。

      运行开发服务器

      在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

      运行服务器命令如下:

      可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。

      启动后可见如下信息:

      

      在浏览器中输入网址“127.0.0.1:8099”便可看到效果。

      

      django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。按ctrl+c停止服务器。

      创建子应用

      在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。

      在Flask框架中也有类似子功能应用模块的概念,即蓝图Blueprint。

      Django的视图编写是放在子应用中的。

      创建

      在django中,创建子应用模块目录仍然可以通过命令来操作,即:

      manage.py为上述创建工程时自动生成的管理文件。

      例如,在刚才创建的bookmanager工程中,想要创建一个用户book子应用模块,可执行:

      执行后,可以看到工程目录中多出了一个名为book的子目录。

       wps office 的官方的下载的网站是什么

      子应用目录说明

      查看此时的工程目录,结构如下:

      

      admin.py文件跟网站的后台管理站点配置相关。apps.py文件用于配置当前子应用的相关信息。migrations目录用于存放数据库迁移历史文件WPS office的电脑版的下载地址。models.py文件用户保存数据库模型类。tests.py文件用于开发测试用例,编写单元测试。views.py文件用于编写Web应用视图。

      注册安装子应用

      创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。

      在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:

      

      注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

      例如,将刚创建的book子应用添加到工程中,可在INSTALLED_APPS列表中添加'book.apps.BookConfig'。

      

      当前项目的开发, 都是数据驱动的。

      以下为书籍信息管理的数据关系:书籍和人物是 :一对多关系

      

      要先分析出项目中所需要的数据, 然后设计数据库表.

      书籍信息表

      字段名字段类型字段说明idAutoField主键nameCharField书名

      idname1西游记2三国演义

      人物信息表

      字段名字段类型字段说明idAutoField主键nameCharField人名genderBooleanField性别bookForeignKey外键

      idnamegenderbook1孙悟空False12白骨精True13曹操False24貂蝉True2

      使用Django进行数据库开发的提示 :

      设计模式中的, 专门负责和数据库交互.对应由于中内嵌了, 所以不需要直接面向数据库编程.而是定义模型类, 通过完成数据库表的.就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象.

      使用Django进行数据库开发的步骤 :

      定义模型类模型迁移操作数据库

      1. 定义模型类

      根据书籍表结构设计模型类:

      模型类:BookInfo书籍名称字段:name根据人物表结构设计模型类:

      模型类:PeopleInfo人物姓名字段:name人物性别字段:gender外键约束:book

      外键要指定所属的模型类说明 :

      书籍-人物的关系为一对多. 一本书中可以有多个英雄.不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.

      根据数据库表的设计

      在中定义模型类,继承自

      模型迁移 (建表)

      迁移由两步完成 :

      生成迁移文件:根据模型类生成创建表的语句

      执行迁移:根据第一步生成的语句在数据库中创建表

      迁移前

      

      迁移后

      此处存在的问题

      运行迁移命令报错

      

      原因:

      在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:

      TypeError: __init__() missing 1 required positional argument: 'on_delete'

      举例:

      应该为

      参数说明:

      on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值

      CASCADE:此值设置,是级联删除。PROTECT:此值设置,是会报完整性错误。SET_NULL:此值设置,会把外键设置为null,前提是允许为null。SET_DEFAULT:此值设置,会把设置为外键的默认值。SET():此值设置,会调用外面的值,可以是一个函数。

      一般情况下使用CASCADE就可以了。

      站点: 分为和两部分内容发布的部分由网站的管理员负责查看、添加、修改、删除数据能够根据定义的模型类自动地生成管理模块使用的管理模块, 需要按照如下步骤操作 :

      1.管理界面本地化2.创建管理员3.注册模型类4.发布内容到数据库

      管理界面本地化

      本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化.中国大陆地区使用, 时区使用, 注意这里不使用北京时区.

      本地化前

      

      本地化后

      

      创建管理员

      创建管理员的命令 :

      按提示输入用户名、邮箱、密码

      

      重置密码

      登陆站点 :

      需要服务器是启动状态

      

      登陆站点成功

      站点界面中没有书籍和人物管理入口,因为没有注册模型类

      

      注册模型类

      在的文件中注册模型类

      需要导入模型模块 :

      

      注册模型后

      

      注册模型成功后, 就可以在站点管理界面方便快速的管理数据.

      发布内容到数据库

      

      然后就报错了

      

      原来不会去数据库生成数据表,还要自己手动去创建

      

      站点管理页面做好了, 接下来就要做的页面了.对于的设计框架.

      用户在URL中请求的是视图.视图接收请求后进行处理.并将处理的结果返回给请求者.使用视图时需要进行两步操作

      1.定义视图2.配置URLconf

      定义视图

      视图就是一个函数,被定义在的中.视图的第一个参数是类型的对象,包含了所有.视图必须返回,包含返回给请求者的.

      需要导入模块 :

      定义视图函数 : 响应字符串给客户端

      

      配置URLconf

      查找视图的过程 :

      1.请求者在浏览器地址栏中输入URL, 请求到网站.2.网站获取URL信息.3.然后与编写好的URLconf逐条匹配.4.如果匹配成功则调用对应的视图.

      5.如果所有的URLconf都没有匹配成功.则返回404错误.

      

      入口

      

      需要两步完成配置

      1.在中定义2.在中定义

      在中定义

      django.urls 中的 path() 和 django.conf.urls 中的 url() 都是 Django 中用于 URL 路由的函数,它们的作用是定义 URL 和视图函数之间的映射关系,即当用户访问某个 URL 时,Django 如何将请求发送给对应的视图函数来处理。

      两者的区别如下:

      path() 函数是 Django 2.0 版本引入的新函数,它更加直观和易用,支持使用 str 类型的路由,可以通过等转换器来定义动态参数,而且不再需要使用正则表达式来匹配 URL,大大简化了 URL 配置的过程。例如:

      需要注意的是,在 Django 3.1 版本以后,url() 函数已经被标记为过时,建议使用 path() 函数来进行 URL 配置。因此,如果使用较新版本的 Django,应该尽量使用 path() 函数来定义 URL 路由。

      看下path()函数用法:

      在 Django 中,path() 函数是用来定义 URL 路由的。它的语法如下:

      其中:

      route:是一个字符串,用来匹配 URL,可以包含变量,例如:'articles/<int:pk>/'。当有请求发生时,Django 会尝试将该字符串与请求的 URL 进行匹配,如果匹配成功,就会调用对应的 view 函数处理该请求。view:是一个视图函数或者一个类视图,用来处理匹配成功的请求,并返回一个响应对象。kwargs:是一个可选的字典,包含额外的关键字参数,传递给视图函数。name:是一个可选的字符串,用来给 URL 路由起一个名称,方便在模板中使用。

      path() 函数支持的 URL 模式有以下几种:

      静态 URL 模式,例如 ‘articles/’。带参数的 URL 模式,例如 'articles/<int:pk>/',其中 <int:pk> 表示一个整数类型的参数。带参数的 URL 模式,例如 'articles/<slug:slug>/',其中 <slug:slug> 表示一个字符串类型的参数,但是只能包含 ASCII 字符、数字、下划线或连字符。带可选参数的 URL 模式,例如 'articles/<int:pk>/<str:slug>/',其中 <str:slug> 表示一个可选的字符串类型的参数。匹配任意字符的 URL 模式,例如 'articles/<path:path>/',其中 <path:path> 可以匹配包含 / 符号的任意字符串。

      在定义 URL 路由时,可以使用多个 path() 函数来定义不同的路由,并将它们作为列表传递给 urlpatterns 变量。例如:

      上面的代码中,定义了两个 URL 路由,分别对应 /articles/ 和 /articles/int:pk/ 两个 URL。其中,views.article_list 和 views.article_detail 分别是处理请求的视图函数。

      Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现。

      参考资料:django2笔记:路由path语法 | 程序员Barnes的博客

      我们采用的是django2.0所以我们采用path语法

      

      在中定义

      提示:一条包括URL规则、视图两部分

      URL规则使用正则表达式定义.

      视图就是在中定义的视图函数.

      from book import views

      

      url匹配过程

      

      测试:请求访问

      

      总结

      视图处理过程如下图:

      

      使用视图时需要进行两步操作,两步操作不分先后

      配置在中定义视图

      思考 : 网站如何向客户端返回一个漂亮的页面呢?

      提示 :

      漂亮的页面需要、、.可以把这一堆字段串全都写到视图中, 作为的参数,响应给客户端.

      问题 :

      视图部分代码臃肿, 耦合度高.这样定义的字符串是不会出任何效果和错误的.效果无法及时查看.有错也不容易及时发现.

      设想 :

      是否可以有一个专门定义前端页面的地方, 效果可以及时展示,错误可以及时发现,并且可以降低模块间耦合度!

      解决问题 :模板

      设计模式中的,

      在中, 将前端的内容定义在模板中, 然后再把模板交给视图调用, 各种漂亮、炫酷的效果就出现了.

      模板使用步骤

      创建模板2.设置模板查找路径3.模板接收视图传入的数据4.模板处理数据

      创建模板

      在同级目录下创建模板文件夹. 文件夹名称固定写法.在文件夹下, 创建同名文件夹. 例,

      在同名文件夹下创建文件. 例 :

      

      设置模板查找路径

      

      模板接收视图传入的数据

      视图模板加载

      

      模板处理数据

      

      查看模板处理数据成果

      

      展示书籍列表

      需求

      

      实现步骤

      1.创建视图2.创建模板3.配置URLconf

      创建视图

      查询数据库数据构造上下文

      传递上下文到模板

      创建模板

      读取上下文数据构造网页html文档 : 书籍信息以列表样式展示

      

      配置URLconf

      进入中的文件

      

      

      效果

      

      setting配置文件

      BASE_DIR

      代表的是settings.py文件,那么的结果将会是settings.py文件的绝对路径;然后parent取其父目录,两个parent就是向上两层父级目录 ,也就是django-admin创建项目之后的路径。

      

      DEBUG

      调试模式,创建工程后初始值为True,即默认工作在调试模式下。

      作用:

      修改代码文件,程序自动重启

      Django程序出现异常时,向前端显示详细的错误追踪信息,例如

      

      而非调试模式下,仅返回Server Error (500)

      注意:部署线上运行的Django不要运行在调式模式下,记得修改DEBUG=False和ALLOW_HOSTS。

      本地语言与时区

      Django支持本地化处理,即显示语言与时区支持本地化。

      本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。

      初始化的工程默认语言和时区为英语和UTC标准时区

      将语言和时区修改为中国大陆信息

      静态文件

      项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理。在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方式配置静态文件路径。静态文件可以放在项目根目录下,也可以放在应用的目录下,由于有些静态文件在项目中是通用的,所以推荐放在项目的根目录下,方便管理。

      为了提供静态文件,需要配置两个参数:

      STATICFILES_DIRS存放查找静态文件的目录STATIC_URL访问静态文件的URL前缀

      示例

      1) 在项目根目录下创建static目录来保存静态文件。

      2) 在bookmanager/settings.py中修改静态文件的两个参数为

      3)此时在static添加的任何静态文件都可以使用网址/static/文件在static中的路径来访问了。

      例如,我们向static目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8099/static/index.html来访问。

      或者我们在static目录中添加了一个子目录和文件book/detail.html,在浏览器中就可以使用127.0.0.1:8099/static/book/detail.html来访问。

      

      

      APP应用配置

      在每个应用目录中都包含了apps.py文件,用于保存该应用的相关信息。

      在创建应用时,Django会向apps.py文件中写入一个该应用的配置类,如

      我们将此类添加到工程settings.py中的INSTALLED_APPS列表中,表明注册安装具备此配置属性的应用。

      AppConfig.name属性表示这个配置类是加载到哪个应用的,每个配置类必须包含此属性,默认自动生成。

      AppConfig.verbose_name属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,如

      

      重点

      模型配置

      数据的增删改

      增: 和

      删: 和

      改: 和

      数据的查询

      基础查询

      F对象和Q对象

      关联查询

      查询集QuerySet

      

      Django默认初始配置使用sqlite数据库,我们现在使用MySQL数据来进行改造,下面是使用sqlite数据库的配置文件。

      使用MySQL数据库首先需要安装驱动程序

      在Django的工程同名子目录的__init__.py文件中添加如下语句

      作用是让Django的ORM能以mysqldb的方式来调用PyMySQL。

      

      修改DATABASES配置信息

      

      在MySQL中创建数据库

      模型类被定义在"应用/models.py"文件中。模型类必须继承自Model类,位于包django.db.models中。

      定义

      在models.py 文件中定义模型类。

      数据库表名

      数据库表名

      模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名。

      可通过db_table指明数据库表名。

      关于主键

      django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。

      默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。

      属性命名限制

      不能是python的保留关键字。不允许使用连续的下划线,这是由django的查询方式决定的。

      定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:

      字段类型

      类型说明AutoField自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性BooleanField布尔字段,值为True或FalseNullBooleanField支持Null、True、False三种值CharField字符串,参数max_length表示最大字符个数TextField大文本字段,一般超过4000个字符时使用IntegerField整数DecimalField十进制浮点数, 参数max_digits表示总位数, 参数decimal_places表示小数位数FloatField浮点数DateField日期, 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误TimeField时间,参数同DateFieldDateTimeField日期时间,参数同DateFieldFileField上传文件字段ImageField继承于FileField,对上传的内容进行校验,确保是有效的图片

      选项

      选项说明null如果为True,表示允许为空,默认值是Falseblank如果为True,则该字段允许为空白,默认值是Falsedb_column字段的名称,如果未指定,则使用属性的名称db_index若值为True, 则在表中会为此字段创建索引,默认值是Falsedefault默认primary_key若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用unique如果为True, 这个字段在表中必须有唯一值,默认值是False

      null是数据库范畴的概念,blank是表单验证范畴的

      外键

      在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models中包含了可选常量:

      CASCADE级联,删除主表数据时连通一起删除外键表中数据

      PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用的数据

      SET_NULL设置为NULL,仅在该字段null=True允许为null时可用

      SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用

      SET()设置为特定值或者调用特定方法

      DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError异常

      迁移

      迁移是 Django 将你对模型的修改(例如增加一个字段,删除一个模型)应用至数据库架构中的方式。它们被设计的尽可能自动化,但你仍需要知道何时构建和运行迁移,你还需要了解一些常见问题。

      以下是几个常用的与迁移交互的命令,即 Django 处理数据库架构的方式:

      migrate,负责应用和撤销迁移。makemigrations,基于模型的修改创建迁移。sqlmigrate,展示迁移使用的 SQL 语句。showmigrations,列出项目的迁移和迁移的状态。

      你应该将迁移看作是数据库架构的版本控制系统。  负责将模型修改打包进独立的迁移文件中——类似提交修改,而  负责将其应用至数据库。

      每个应用的迁移文件位于该应用的 "migrations" 目录中,他们被设计成应用代码的一部分,与应用代码一起被提交,被发布。你只需在开发机上构建一次,就可以在同事的电脑或测试机上运行同样的迁移而保证结果一致。最后在生产环境运行同样的迁移。

      简单来说就是将模型类同步到数据库中。

      生成迁移文件

      

      同步到数据库中

      

      添加测试数据

      Django的manage工具提供了shell命令,帮助我们配置好当前工程的运行环境(如连接好数据库等),以便可以直接在终端中执行测试python语句。

      通过如下命令进入shell

      

      导入两个模型类,以便后续使用

      增加

      增加数据有两种方法。

      save

      通过创建模型类对象,执行对象的save()方法保存到数据库中。

      

      

      create

      通过模型类.objects.create()保存。

      

      

      修改

      修改更新有两种方法

      save

      修改模型类对象的属性,然后执行save()方法

      

      

      update

      使用模型类.objects.filter().update(),会返回受影响的行数

      删除

      删除有两种方法

      模型类对象delete

      模型类.objects.filter().delete()

      

      

      基础条件查询

      基本查询

      get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常。(pk指的就是主键id)

      all查询多个结果。

      count查询结果数量。

      

      

      过滤查询

      实现SQL中的where功能,包括

      filter过滤出多个结果exclude排除掉符合条件剩下的结果get过滤单一结果

      对于过滤条件的使用,上述三个方法相同,故仅以filter进行讲解。

      过滤条件的表达语法如下:

      相等

      exact:表示判等。

      例:查询编号为1的图书。

      

      模糊查询

      contains:是否包含。

      说明:如果要包含%无需转义,直接写即可。

      例:查询书名包含'传'的图书。

      

      startswith、endswith:以指定值开头或结尾。

      例:查询书名以'部'结尾的图书

      

      以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith.

      空查询

      isnull:是否为null。

      例:查询书名为空的图书。

      

      范围查询

      in:是否包含在范围内。

      例:查询编号为1或3或5的图书

      

      比较查询

      gt大于 (greater then)gte大于等于 (greater then equal)lt小于 (less then)lte小于等于 (less then equal)

      例:查询编号大于3的图书

      

      不等于的运算符,使用exclude()过滤器。

      例:查询编号不等于3的图书

      

      日期查询

      year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。

      例:查询1980年发表的图书。

      

      例:查询1990年1月1日后发表的图书。

       wps的的官网最新下载的地址是什么

      F和Q对象

      F对象

      之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢? 答:使用F对象,被定义在django.db.models中。

      语法如下:

      例:查询阅读量大于等于评论量的图书。

      

      可以在F对象上使用算数运算。

      例:查询阅读量大于2倍评论量的图书。

      

      Q对象

      多个过滤器逐个调用表示逻辑与关系,同sql语句中where部分的and关键字。

      例:查询阅读量大于20,并且编号小于3的图书。

      

      如果需要实现逻辑或or的查询,需要使用Q()对象结合|运算符,Q对象被义在django.db.models中。

      语法如下:

      例:查询阅读量大于20的图书,改写为Q对象如下。

      Q对象可以使用&、|连接,&表示逻辑与,|表示逻辑或。

      例:查询阅读量大于20,或编号小于3的图书,只能使用Q对象实现

      

      Q对象前可以使用~操作符,表示非not。

      例:查询编号不等于3的图书。

      

      聚合函数和排序函数

      聚合函数

      使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和,被定义在django.db.models中。

      例:查询图书的总阅读量。

      

      注意aggregate的返回值是一个字典类型,格式如下:

      使用count时一般不使用aggregate()过滤器。

      例:查询图书总数。

      注意count函数的返回值是一个数字。

      排序

      使用order_by对结果进行排序

      

      关联查询

      由一到多的访问语法:

      一对应的模型类对象.多对应的模型类名小写_set 例:

      

      由多到一的访问语法:

      多对应的模型类对象.多对应的模型类中的关系类属性名 例:

      

      访问一对应的模型类关联对象的id语法:

      多对应的模型类对象.关联类属性_id

      例:

      

      关联过滤查询

      由多模型类条件查询一模型类数据:

      语法如下:

      注意:如果没有"__运算符"部分,表示等于。

      例:

      查询图书,要求图书人物为"郭靖"

      

      查询图书,要求图书中人物的描述包含"八"

      

      由一模型类条件查询多模型类数据:

      语法如下:

      注意:如果没有"__运算符"部分,表示等于。

      例:

      查询书名为“天龙八部”的所有人物。

      

      查询图书阅读量大于30的所有人物

      

      查询集QerySet

      概念

      Django的ORM中存在查询集的概念。

      查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。

      当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):

      all():返回所有数据。filter():返回满足条件的数据。exclude():返回满足条件之外的数据。order_by():对结果进行排序。

      对查询集可以再次调用过滤器进行过滤,如

      

      也就意味着查询集可以含有零个、一个或多个过滤器。过滤器基于所给的参数限制查询的结果。

      从SQL的角度讲,查询集与select语句等价,过滤器像where、limit、order by子句。

      判断某一个查询集中是否有数据:

      exists():判断查询集中是否有数据,如果有则返回True,没有则返回False。

      两大特性

      惰性执行

      创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用

      例如,当执行如下语句时,并未进行数据库查询,只是创建了一个查询集books

      继续执行遍历迭代操作后,才真正的进行了数据库的查询

      缓存

      使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数。

      情况一:如下是两个查询集,无法重用缓存,每次查询都会与数据库进行一次交互,增加了数据库的负载。

      

      情况二:经过存储后,可以重用查询集,第二次使用缓存中的数据。

      

      限制查询集

      可以对查询集进行取下标或切片操作,等同于sql中的limit和offset子句。

      注意:不支持负数索引。

      对查询集进行切片后返回一个新的查询集,不会立即执行查询。

      如果获取一个对象,直接使用[0],等同于[0:1].get(),但是如果没有数据,[0]引发IndexError异常,[0:1].get()如果没有数据引发DoesNotExist异常。

      示例:获取第1、2项,运行查看。

      

      分页

      Pagination | Django documentation | Django (djangoproject.com)

      

      视图介绍

      视图就是中文件中的函数视图的第一个参数必须为,还可能包含下参数如

      通过正则表达式组获取的位置参数通过正则表达式组获得的关键字参数视图必须返回一个或作为响应

      子对象:  视图负责接受Web请求,进行逻辑处理,返回Web响应给请求者

      响应内容可以是,,,…

      视图处理过程如下图:

      

      使用视图时需要进行两步操作,两步操作不分先后

      配置在中定义视图

      项目准备

      创建项目+创建应用+安装应用+配置模板路径+本地化+mysql数据库+URLconf+视图

      mysql数据库使用之前的book

      URLconf

      中:指定url配置

      项目中:只要不是就匹配成功,包含到应用中的

      应用中:匹配成功就调用中的函数,测试项目逻辑

      视图:测试项目逻辑

      在models.py 文件中定义模型类

      生成迁移文件

      同步到数据库中

      添加测试数据

      

      浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的

      配置URLconf

      1.中

      指定url配置

      2.项目中

      匹配成功后,包含到应用的

      3.应用中

      匹配成功后,调用对应的函数

      路由命名是给你写的路由起一个名字,reverse反解析能给根据名字解析出对应的路由。

      路由命名

      在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。

      1) 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如

      

      命名空间表示,凡是book.urls中定义的路由,均属于namespace指明的book名下。

      命名空间的作用:避免不同应用中的路由使用了相同的名字发生冲突,使用命名空间区别开。

      2) 在定义普通路由时,可以使用name参数指明路由的名字,如

      

      reverse反解析

      使用reverse函数,可以根据路由名称,返回具体的路径,如:

      对于未指明namespace的,reverse(路由name)对于指明namespace的,reverse(命名空间namespace:路由name)

      

      

      PostMan 是一款功能强大的网页调试与发送网页 HTTP 请求的 Chrome 插件,可以直接去对我们写出来的路由和视图函数进行调试,作为后端程序员是必须要知道的一个工具。

      Postman API Platform官网下载桌面版

      回想一下,利用HTTP协议向服务器传参有几种途径?

      提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取;查询字符串(query string),形如key1=value1&key2=value2;请求体(body)中发送的数据wps官网下载的入口在哪,比如表单数据、json、xml;在http报文的头(header)中。

      URL路径参数

      如果想从URL中获取值,需要在正则表达式中使用,获取值分为两种方式

      位置参数

      参数的位置不能错关键字参数

      参数的位置可以变,跟关键字保持一致即可注意:两种参数的方式不要混合使用,在一个正则表达式中只能使用一种参数方式分别使用以上两种获取URL值的方式提取出

      127.0.0.1:8099/booklist/testPath/1/2/

      位置参数

      应用中

      视图中函数: 参数的位置不能错

      如果将<num1>改为 <int:num1>,会进行类型约束,如果传入参数不为int型报错,相似的有:

      int:接收整数

      str:字符串

      path:可以接收包含"/"的路径

      slug:接收【数字、字母、下划线、中划线】四种字符

      

      

      

       

      关键字参数

      如果,使用path函数并不能满足你匹配URL的要求,那么可以使用re_path函数来使用正则表达式来匹配URL路径中的参数。需要注意在Django中,使用正则表达式来获取分组中的值的语法是,其中 name 是组名,pattern 是要匹配的模式。

      应用中

      其中部分表示为这个参数定义的名称为

      可以是其它名称,起名要做到见名知意

      视图中函数: 参数的位置可以变,跟关键字保持一致即可

      

      

       Django中的QueryDict对象

      HttpRequest对象的属性GET、POST都是QueryDict类型的对象

      与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况

      方法get():根据键获取值

      如果一个键同时拥有多个值将获取最后一个值

      如果键不存在则返回None值,可以设置默认值进行后续处理

      方法getlist():根据键获取值,值以列表返回,可以获取指定键的所有值

      如果键不存在则返回空列表[],可以设置默认值进行后续处理

      查询字符串Query String

      获取请求路径中的查询字符串参数(形如?k1=v1&k2=v2),可以通过request.GET属性获取,返回QueryDict对象。

      

      

      重要:查询字符串不区分请求方式,即假使客户端进行POST方式的请求,依然可以通过request.GET获取请求中的查询字符串数据。

      请求体

      请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。

      可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。

      Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试时可以关闭CSRF防护机制,方法为在settings.py文件中注释掉CSRF中间件,如:

      

      表单类型 Form Data

      前端发送的表单类型的请求体数据,可以通过request.POST属性获取,返回QueryDict对象。

      

      

      因为浏览器不好发送post请求,所以我们用postman来测试

       WPS office的官网最新的下载的入口的方法

      1填入的路径http://127.0.0.1:8099/booklist/post/

      2是填入的参数

      3是点击发送

      4是结果

      非表单类型 Non-Form Data

      非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性获取最原始的请求体数据,自己按照请求体格式(JSON、XML等)进行解析。request.body返回bytes类型。

      例如要获取请求体中的如下JSON数据

      可以进行如下方法操作:

      

      

      

      请求头

      可以通过request.META属性获取请求头headers中的数据,request.META为字典类型。

      常见的请求头如:

      – The length of the request body (as a string).– The MIME type of the request body.– Acceptable content types for the response.– Acceptable encodings for the response.– Acceptable languages for the response.– The HTTP Host header sent by the client.– The referring page, if any.– The client’s user-agent string.– The query string, as a single (unparsed) string.– The IP address of the client.– The hostname of the client.– The user authenticated by the Web server, if any.– A string such asor.– The hostname of the server.– The port of the server (as a string).

      具体使用如:

      

       

      

      其他常用HttpRequest对象属性

      method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'、'POST'wps 的官网下载网址(wps office下载官网免费下载)。user:请求的用户对象。path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分。

      encoding:一个字符串,表示提交的数据的编码方式。

      如果为None则表示使用浏览器的默认设置,一般为utf-8。这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。

      FILES:一个类似于字典的对象,包含所有的上传文件。

      

      视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。

      HttpResponse

      可以使用django.http.HttpResponse来构造响应对象。

      也可通过HttpResponse对象属性来设置响应体、响应体数据类型、状态码:

      content:表示返回的内容。status_code:返回的HTTP响应状态码。

      响应头可以直接将HttpResponse对象当做字典进行响应头键值对的设置:

      示例:

      

      

      

      HttpResponse子类

      Django提供了一系列HttpResponse的子类,可以快速设置状态码

      HttpResponseRedirect 301HttpResponsePermanentRedirect 302HttpResponseNotModified 304HttpResponseBadRequest 400HttpResponseNotFound 404HttpResponseForbidden 403HttpResponseNotAllowed 405HttpResponseGone 410HttpResponseServerError 500

      

      

      JsonResponse

      若要返回json数据,可以使用JsonResponse来构造响应对象,作用:

      帮助我们将数据转换为json字符串设置响应头Content-Type为application/json

      

      redirect重定向

      

      浏览器请求服务器是无状态的。无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。无状态原因:浏览器与服务器是使用Socket套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的Socket连接,而且服务器也会在处理页面完毕之后销毁页面对象。有时需要保持下来用户浏览的状态,比如用户是否登录过,浏览过哪些商品等实现状态保持主要有两种方式:

      在客户端存储信息使用在服务器端存储信息使用

      Cookie

      Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等。服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型记住用户名。

      Cookie是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,因为电脑上的浏览器可能被其它人使用。

      cookie的工作原理:

      第一次请求过程:

      我们的浏览器第一次请求服务器的时候,不会携带任何cookie信息

      服务器接收到请求之后,发现,请求中没有任何cookie信息

      服务器设置一个cookie,这个cookie设置在应中

      我们的浏览器接收到这个响应之后,发现响应中有cookie信息,浏览器会将cookie信息保存起来

      第二次及其之后的过程

      当我们的浏览器第二次及其之后的请求都会携带cookie信息

      我们的服务器接收到请求之后,会发现请求中携带的cookie信息,这样的话就认识是谁的请求了

      不设置cookie时浏览器控制台cookie情况

      

       

      后端不设置cookie,也会返回一个默认的cookie

      然后我们看看手动设置cookie的情况

      

        会返回默认和自己设置的,访问服务器的时候会带上。

      

      Cookie的特点

      Cookie以键值对的格式进行信息的存储。Cookie基于域名安全,不同域名的Cookie是不能互相访问的,如访问itcast.cn时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到itcast.cn写的Cookie信息。当浏览器请求某网站时,会将浏览器存储的跟网站相关的所有Cookie信息提交给网站服务器。

      设置Cookie

      可以通过HttpResponse对象中的set_cookie方法来设置cookie。

      max_age单位为秒,默认为None 。如果是临时cookie,可将max_age设置为None。

      示例:

      读取Cookie

      可以通过HttpResponse对象的COOKIES属性来读取本次请求携带的cookie值。request.COOKIES为字典类型。

      删除Cookie

      可以通过HttpResponse对象中的delete_cookie方法来删除。

      Session

      保存在服务器的数据叫做 session,session需要依赖于cookie,如果浏览器禁用了cookie,则session不能实现。

      session流程:

      第一次请求:

      我们第一次请求的时候可以携带一些信息(用户名/密码) cookie中没有任何信息

      当我们的服务器接收到这个请求之后,进行用户名和密码的验证,验证没有问题可以设置session信息

      在设置session信息的同时(session信息保存在服务器端).服务器会在响应头中设置一个 sessionid 的cookie信息(由服务器自己设置的,不是我们设置的)

      客户端(浏览器)在接收到响应之后,会将cookie信息保存起来(保存 sessionid的信息)

      第二次及其之后的请求:

      第二次及其之后的请求都会携带 session id信息

      当服务器接收到这个请求之后,会获取到sessionid信息,然后进行验证, 验证成功,则可以获取 session信息(session信息保存在服务器端)

      

      启用Session

      Django项目默认启用Session。

      可以在settings.py文件中查看,如图所示

      

      如需禁用session,将上图中的session中间件注释掉即可。

      存储方式

      在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。

      数据库

      存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。

      如果存储在数据库中,需要在项INSTALLED_APPS中安装Session应用。

      

      数据库中的表如图所示

      

      

      由表结构可知,操作Session包括三个数据:键,值,过期时间。

      本地缓存

      存储在本机内存中,如果丢失则不能找回,比数据库的方式读写更快。

      混合存储

      存储在本机内存中,如果丢失则不能找回,比数据库的方式读写更快。

      Redis

      在redis中保存session,需要引入第三方扩展,我们可以使用django-redis来解决。

      1) 安装扩展

      2)配置

      在settings.py文件中做如下设置

      Session操作

      通过HttpRequest对象的session属性进行会话的读写操作。

      1) 以键值对的格式写session。

      2)根据键读取值。

      3)清除所有session,在存储中删除值部分。

      4)清除session数据,在存储中删除session的整条数据。

      5)删除session中的指定键及值,在存储中只删除某个键及对应的值。

      6)设置session的有效期

      如果value是一个整数,session将在value秒没有活动后过期。如果value为0,那么用户session的Cookie将在用户的浏览器关闭时过期。如果value为None,那么session有效期将采用系统默认值, 默认为两周,可以通过在settings.py中设置SESSION_COOKIE_AGE来设置全局默认值。

      案列:使用数据库模式

      

      

      不设置session,则控制台没有sessionId;

      

      

      设置session,则控制台有sessionId; 

      访问获取session

      类视图

      思考:一个视图,是否可以处理两种逻辑?比如get和post请求逻辑。

      如何在一个视图中处理get和post请求

      

      注册视图处理get和post请求

      以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。

      类视图使用

      在Django中也可以使用类来定义一个视图,称为类视图。

      使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。如下所示

      类视图的好处:

      代码可读性好类视图相对于函数视图有更高的复用性 , 如果其他地方需要用到某个类视图的某个特定逻辑,直接继承该类视图即可

      类视图原理

      类视图的多继承重写dispatch

      使用面向对象多继承的特性。

      

      中间件

      Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。

      我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。

      中间件的定义方法

      定义一个中间件工厂函数,然后返回一个可以被调用的中间件。

      中间件工厂函数需要接收一个可以调用的get_response对象。

      返回的中间件也是一个可以被调用的对象,并且像视图一样需要接收一个request对象参数,返回一个response对象。

      例如,在book应用中新建一个middleware.py文件,

      定义好中间件后,需要在settings.py 文件中添加注册中间件

      定义一个视图进行测试

      

      注意:Django运行在调试模式下,中间件init部分有可能被调用两次。

      多个中间件的执行顺序

      在请求视图被处理前,中间件由上至下依次执行在请求视图被处理后,中间件由下至上依次执行

      

      示例:

      定义两个中间件

      注册添加两个中间件

      执行结果

      

      配置:

      在工程中创建模板目录templates。

      在settings.py配置文件中修改TEMPLATES配置项的DIRS值:

      定义模板

      在templates目录中新建一个模板文件,如index.html

      模板渲染

      调用模板分为两步骤:

      找到模板 loader.get_template(模板文件在模板目录中的相对路径) -> 返回模板对象

      渲染模板 模板对象.render(context=None, request=None) -> 返回渲染后的html文本字符串 context 为模板变量字典,默认值为None request 为请求对象,默认值为None

      例如,定义一个视图

      Django提供了一个函数render可以简写上述代码。

      render(request对象, 模板文件路径, 模板数据字典)

      模板语法

      模板变量

      变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。

      语法如下:

      {{变量}}

      模板变量可以使python的内建类型,也可以是对象。

      模板语句

      for循环:

      

      if条件:

      

      比较运算符如下:

      布尔运算符如下:

      注意:运算符左右两侧不能紧挨变量或常量,必须有空格。

      

      注释

      单行注释语法如下:

      {#…..#}

      多行注释使用comment标签,语法如下:

      {% coment %}

      ………

      {% endcomment %}

      过滤器

      语法如下:

      使用管道符号|来应用过滤器,用于进行计算、转换操作,可以使用在变量、标签中。如果过滤器需要参数,则使用冒号:传递参数。

      列举几个如下:

      safe,禁用转义,告诉模板这个变量是安全的,可以解释执行

      length,长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。

      default,默认值,如果变量不存在时则返回默认值。

      date,日期,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:

      Y表示年,格式为4位,y表示两位的年。m表示月,格式为01,02,12等。d表示日, 格式为01,02等。j表示日,格式为1,2等。H表示时,24进制,h表示12进制的时。i表示分,为0-59。s表示秒,为0-59。

      模板继承

      模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。

      父模板

      如果发现在多个模板中某些内容相同,那就应该把这段内容定义到父模板中。

      标签block:用于在父模板中预留区域,留给子模板填充差异性的内容,名字不能相同。 为了更好的可读性,建议给endblock标签写上名字,这个名字与对应的block名字相同。父模板中也可以使用上下文中传递过来的数据。

      子模板

      标签extends:继承,写在子模板文件的第一行。

      

      子模版不用填充父模版中的所有预留区域,如果子模版没有填充,则使用父模版定义的默认值。

      {% extends "父模板路径"%}

      填充父模板中指定名称的预留区域。

      jinja2介绍

      Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,尤其是Flask框架内置的模板语言

      由于django默认模板引擎功能不齐全,速度慢,所以我们也可以在Django中使用jinja2, jinja2宣称比django默认模板引擎快10-20倍。

      Django主流的第三方APP基本上也都同时支持Django默认模板及jinja2,所以要用jinja2也不会有多少障碍。

      安装jinja2模块

      Django配置jinja2

      Django配置jinja2

      

      在项目文件中创建 jinja2_env.py 文件

      在settings.py文件

      遇到问题:

      

      ERRORS:

      ?: (admin.E403) A 'django.template.backends.django.DjangoTemplates' instance must be configured in TEMPLATES in order to use the admin application.

      根据报错提示,应该是 django 自带的 admin 模块需要使用 django 默认模板。

      所以需要保留他自身的默认配置:

      

      如果不想使用他自身的配置给出两种方案:

      第一种去除掉admin 模块:

      修改好上述三处代码之后,就可以正常使用了。

      第二种方法直接建两个模板空间

      jinja2模板的使用绝大多数和Django自带模板一样,不一样有:

      jinja2自定义过滤器

      在jinja2_env.py文件中自定义过滤器

      全拼为,译为跨站请求伪造。指攻击者盗用了你的身份,以你的名义发送恶意请求。

      包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,WPS office的电脑版的下载网站怎么找转账……造成的问题:个人隐私泄露以及财产安全。

      CSRF攻击示意图

      客户端访问服务器时没有同服务器做安全验证

      防止 CSRF 攻击

      步骤

      在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token在用户点击提交的时候,会带上这两个值向后台发起请求后端接受到请求,以会以下几件事件:

      从 cookie中取出 csrf_token从 表单数据中取出来隐藏的 csrf_token 的值进行对比如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作

      代码演示

      未进行 csrf 校验的 WebA

      后端代码实现

      前端登录页面代码

      前端转账页面代码

      运行测试,如果在未登录的情况下,不能直接进入转账页面,测试转账是成功的

      攻击网站B的代码

      后端代码实现

      前端代码实现

      运行测试,在用户登录网站A的情况下,点击网站B的按钮,可以实现伪造访问

      在网站A中实现 csrf_token 校验的流程

      导入生成 csrf_token 的函数

      在渲染转账页面的,做以下几件事情:

      生成 csrf_token 的值在返回转账页面的响应里面设置 csrf_token 到 cookie 中将 csrf_token 保存到表单的隐藏字段中

      在转账模板表单中添加 csrf_token 隐藏字段

      运行测试,进入到转账页面之后,查看 cookie 和 html 源代码

      

      在执行转账逻辑之前进行 csrf_token 的校验

      运行测试,用户直接在网站 A 操作没有问题,再去网站B进行操作,发现转账不成功,因为网站 B 获取不到表单中的 csrf_token 的隐藏字段,而且浏览器有同源策略,网站B是获取不到网站A的 cookie 的,所以就解决了跨站请求伪造的问题

      Django默认是开启CSRF的

      

      模板中设置 CSRF 令牌

  • wps office 官方的下载地方是什么

      来源:雪球App,作者: 链茶馆,(https://xueqiu.com/1903522932/286851810)

      1. 项目简介

      Dimo 是一个建立在Polygon上的汽车物联网平台,旨在使每辆车都变得智能化和可编程化,提供帮助车主完全控制,并充分利用其车辆生成的数据的服务。

      具体而言,Dimo项目让车主和驾驶员得以收集和共享他们的车辆数据和记录的数据,包括汽车行驶公里、行驶速度、位置追踪、轮胎压力、电池/发动机健康状况等。通过分析车辆数据,Dimo平台可以预测何时需要维护并及时提醒用户,这样,驾驶员不仅能深入了解自己的车辆,还能将数据贡献给Dimo的生态系统。

      此外,驾驶员还可以通过贡献数据获得DIMO代币作为奖励。DIMO代币是DIMO网络的本地原生代币,基于ERC-20,此代币旨在奖励和激励用户在其生态系统中参与和贡献,维持DIMO的生态系统。

      2. 运作原理

      简单来说,车主通过与硬件提供商(如 AutoPi)合作的 DIMO 兼容设备,如 DIMO x AutoPi OBDII 设备,可以将其车辆连接到 DIMO 平台。连接后,DIMO 会从车辆收集丰富的数据,包括基本信息和更高级的行驶模式数据,并将其安全传输到 DIMO 网络,在链上存储,并与独特的车辆 ID 链接,后者以 形式存在。

      3. 核心机制

      3.1 硬件和软件集成

      DIMO 项目的核心在于其能够有效地整合硬件和软件,以实现车辆数据的实时监控、管理和货币化。这种WPS office官网下载的网址怎么找整合不仅提高了数据的可用性和价值,还增强了用户对他们车辆数据的控制。

      3.1.1 硬件集成

      OBDII 设备

      DIMO x AutoPi:这是一个主要的硬件组件,通过车辆的 OBD-II 端口连接,能够读取车辆的诊断信息和实时数据。

      功能:收集数据如车速、发动机状态、油耗、故障代码等。

      安装:用户可以轻松安装在几乎任何现代汽车上,不需要专业的技术支持。

      兼容性:

      支持多种车型:硬件设计兼容包括传统汽车和新能源汽车在内的多种车型,如 Tesla 和 Rivian。

      软件集成:对于已具备高级连接功能的车辆(如某些车型),DIMO 提供了软件直接集成的选项,无需额外的硬件。

      3.1.2 软件集成

      移动应用和网络平台:

      用户界面:提供直观的用户界面,供车主查看和管理他们的车辆数据。

      数据访问和控制:用户可以通过应用程序控制谁可以访问他们的数据,以及如何使用这些数据。

      数据管理:

      安全存储:所有车辆数据都通过加密安全地存储在区块链上,确保数据的安全性和完整性。

      智能合约:使用智能合约自动执行数据访问和货币化协议,确保所有交易的透明性和可追溯性。

      开发者支持:

      APIs:DIMO 提供开发者API,允许第三方开发者轻松接入并使用车辆数据,开发新的应用和服务wps电脑版的下载的方法。

      开放源代码:大多数软件组件是开源的,鼓励社区和开发者参与并贡献于平台的持续改进

      实时数据访问:这些设备使车辆能够将实时数据传输到 DIMO 平台,包括但不限于车辆状态(如锁定状态、窗户位置)、行驶数据(如速度、行驶模式)、环境数据(如温度、压力)等。

      3.2 数据存储与链上管理

      3.2.1 数据存储

      区块链基础设施:

      不可篡改性:所有车辆数据一旦上传至区块链,就无法被篡改或删除,确保了数据的真实性和完整性。

      加密技术:利用区块链的加密技术,保障数据在存储和传输过程中的安全性。

      数据类型:

      基本信息:包括车辆的制造商、型号、年份等。

      运行数据:如速度、位置、油耗、电池状态等。

      行为数据:驾驶行为模式、使用频率等。

      智能合约:

      自动执行:通过智能合约自动处理数据访问请求和交易,例如数据销售和购买。

      数据访问权限:车主可以通过智能合约设定谁可以访问其数据,以及在什么条件下可以访问。

      3.2.2 链上管理

      车辆身份验证和注册:

      数字身份:每辆车在 DIMO 平台上都会被赋予一个独一无二的数字身份(通常以 形式实现),这个身份包含车辆的详细信息和历史数据。

      链上注册:车辆的数字身份及其相关数据在区块链上注册和管理,确保了身份的唯一性和不可伪造性。

      数据访问控制:

      链上权限管理:车主可以通过区块链设置和调整谁可以访问他们的数据,以及在什么条件下可以访问。

      合同执行:当第三方满足车主设置的条件时,智能合约会自动授权数据访问。

      透明度和可追溯性:

      交易记录:所有数据交易和访问记录都在区块链上公开记录,任何人都可以验证但不能修改。

      审计轨迹:这为数据的使用和访问提供了完整的审计轨迹,增加了系统的透明度。

      数据货币化:

      市场机制:车主可以在平台的市场上销售他们的数据,智能合约确保交易的公正性和透明性。

      代币经济:数据销售的收入可以转化为 DIMO 代币,进一步在平台内进行使用或交易。

      通过这种方式,DIMO 利用区块链技术的核心优势,建立了一个安全、可靠、透明的数据管理和交易环境,使车主能够充分控制和利用自己的车辆数据,同时为整个汽车生态系统的发展贡献力量wps的电脑版的下载的入口是多少(wps官网下载2023)。

      3.3 DIMO与IoTeX合作的新产品(即将推出)

      近日,IoTeX 与 DIMO 宣布达成合作,双方将携手打造 Web3 时代移动出行新生态。IoTeX 凭借其快速增长的生态网络不断拓宽 DePIN(去中心化物理基础设施网络)新边界,赋能移动出行新领域。

      DIMO 网络上将集成由 IoTeX 研发的全球首款去中心化链下计算基础设施 W3bstream,将联网车辆的数据连接到智能合约,帮助 Web3 开发人员轻松访问零方可移动数据,支持孵化革命性移动出行 Dapp,让消费者和车队运营商能够真正拥有和控制其车辆生成的数据。

      IoTeX 和 DIMO 合作的核心目标是提升全球数百万车主的驾驶和出行体验。首先,IoTeX 将在 DIMO 网络上集成 W3bstream,为开发人员打造一个全新的设计空间,支持孵化具有颠覆移动出行领域的革命性 Dapp。这些 Web3 应用程序可以让车主和车队运营商完全控制其车辆数据,解锁包括汽车金融、保险、共享出行、车辆维保等创新服务。

      IoTeX 推出的 W3bstream 可以被视为构建在区块链之上的机器指挥层,能够组织和协调一组机器来完成特定的任务,为开发人员、企业和用户收集多种来源的数据,包括各种联网设备和机器产生的数据。

      DIMO 可以为用户的车辆定制创建“数字孪生”,并通过保险、汽车保养、轮胎、电池、汽车销售和融资等内嵌式服务为用户节约时间和成本。同时,用户可以通过向 DIMO 生态网络上的 App 分享自己汽车产生的数据,赚取通证奖励。

      IoTeX 和 DIMO 的合作为 DePIN 领域的发展和实践提供了宝贵的机会,之后双方将在 W3bstream 集成、组织 DIMO Data 黑客松、市场推广活动等领域展开深度合作。

      4. DIMO代币

      DIMO 代币是 DIMO 平台的本地加密货币,旨在奖励和激励用户在其生态系统中参与和贡献。

      以下是关于 DIMO 代币的一些关键信息:

      4.1 代币功能

      奖励机制:奖励用户为网络贡献数据和服务。
    wps office 的官方的下载的网站在哪里
      治理:$DIMO 代币持有者可以对协议的运作方式进行投票。例如,他们控制以下决策:软件代码升级;协议和标准;谁可以许可知识产权;费用如何产生;以及如何发放奖励。持有者甚至可以更新代币本身的属性及其用途。

      交易媒介:在 DIMO 生态系统中,代币可用作交易媒介,用于购买服务或支付费用。

      结合生态系统的激励与质押:生产 DIMO 兼容硬件、传输用户数据和构建应用程序的企业必须参与其中,并且有理由关心 DIMO 的长期成功,这一点很重要。因此,他们必须质押和/或花费 $DIMO 代币才能维持许可证并将产品部署到网络。在这种情况下,质押相当于保证金,就像您搬进新公寓时可能存入的保证金一样。如果质押者行为不当,他们的部分或全部代币可能会被没收。虽然这不会为质押者带来收益,但它确实迫使他们成为代币的长期持有者。

      4.2 获取方式

      用户可以通过多种方式在 DIMO 平台上赚取 DIMO 代币:

      连接车辆:将车辆连接到 DIMO 应用。

      数据分享:分享车辆数据给平台和其他用户。

      参与网络活动:如推荐新用户或在平台上开发应用程序。

      4.3 透明性和安全性

      DIMO 代币运营在区块链技术上,确保所有交易都是安全的、不可篡改的,并且为用户提供了完全的透明性。这种透明性和安全性是通过将车辆数据和交易记录在区块链上实现的,这不仅保护了数据的安全性,也保障了用户对其数据的完全控制权。

      4.4 代币供应

      DIMO代币的总供应量和最大供应量都是1,000,000,000 DIMO,截至撰写本文时,流通量为218,392,113 DIMO,占总供应量的21.84%。

      从DIMO 代币的分配来看,团队占据了 22% 的比例,这些代币被锁定两年,确保团队对项目的长期承诺。资本合作伙伴获得了 8% 的份额,也同样锁定了两年。DIMO Treasury 控制着 25% 的代币,由社区投票决定其使用。最大的一块是持续的基线发行,占了 38%,这些代币将在接下来的 40 年里逐渐释放,目的是为了项目的长期生态系统激励和健康发展。此外,7% 的代币通过空投分配给社区,以促进用户参与和扩大采纳率。

      4.5 代币表现

      截止目前,DIMO的价格为$0.279,最近一周内下跌了24.27%。市值约为$60,902,340,位于排行榜的第547位。24小时交易量约为$805,747,交易量与市值的比为1.33%,市场活跃率较低。最近一周,DIMO的价格经历了一段下跌趋势,随后出现了一些波动。整体上,价格呈现出下跌趋势,这可能表明市场对该代币的信心减少或者市场整体状况不佳。

      5. 团队/合作伙伴/融资状况

      5.1 团队

      联合创始人之一Andy Chatham,毕业于康奈尔大学,他还是 Infrastructure 公司的首席执行官。Alex Rawitz 也是 DIMO 的联合创始人,他还是 Digital Infrastructure 的首席运营官和联合创始人。此前,他曾担任 Chainalysis 的客户主管。Alex Rawitz 专注于WPS office的电脑版的下载网站怎么找/加密货币,对物联网、AV、VR 以及任何其他有可能成为现实的科幻小说感兴趣。Rob Solomon 是 DIMO 联合创始人,毕业于康奈尔大学,曾担任 ConsenSys Mesh 财务主管。

      5.2 合作伙伴

      DIMO 的合作伙伴包括一些知名的投资者和资本:

      币基金:引领了 DIMO 的 Series A 融资轮

      Borderless Capital:参与投资,这是一个聚焦于 Algorand 生态系统的资本公司。

      共识网:Consensys 的风险投资部门,也是 DIMO 的投资者之一。

      Lattice Capital、Variant Fund、Slow Ventures:都是参与投资的公司,表明了多元化的资本支持。

      Streamr、Packy 、Trevor McFedries、Michael Sena、Amir Haleem、Mason Borda:包括

      Rick Wagoner 和 Kiran Bhatraju:作为个人投资者参与支持。

      5.3 融资情况

      DIMO 已通过两轮融资筹集了 2050 万美元wps的电脑版下载的地址在哪。

      DIMO 的最新一轮融资是2024 年 1 月 16 日进行的 A 轮融资。这轮融资由CoinFund领投,筹集了1150万美元,还得到了Slow Ventures、ConsenSys Mesh、Borderless Capital、比尔·阿克曼的Table Management以及前CEO G. Rick Wagoner Jr.等的参与。此次融资使得公司迄今为止的总融资额达到了2200万美元。这轮融资将帮助DIMO巩固其作为DePIN(分散的物理基础设施网络)的基础网络地位,并在接下来的一年内推出更多的开发者工具。wps免费版的下载的地方的方法

      6. 优势劣势分析

      对于任何wps的官网的下载方法是什么区块链项目,包括 DIMO,未来的发展潜力、优势和劣势的分析需要基于多个方面来考量。以下是基于 DIMO 项WPS office的官网最新的下载方法是什么目的现有信息的一般分析:

      6.1 优势:

      创新的技术:DIMO 提供了一个创新的区块链平台,专注于车辆数据和物联网,这是一个尚未饱和的市场领域。

      开源和社区驱动:作为一个开源项目,DIMO 可以利用全球开发者社区的知识和创新力量,从而不断改进其技术和产品。

      合作伙伴网络:根据可用的信息,DIMO 已经与一系列资本合作伙伴建立了联系,这为项目提供了资金和资源上的支持。

      实际应用的潜力:DIMO 旨在提供实际应用,比如车辆金融和保险谈判,可能会吸引那些对加密市场以外的传统行业感兴趣的用户。

      生态系统建设:通过激励措施和基础发行,DIMO 旨在建立一个可持续的生态系统,促进长期增长。

      6.2 劣势:

      市场竞争:尽管物联网是一个成长空间,但这个领域已经存在一些竞争对手,DIMO 需要提供独特的卖点来吸引用户。

      技术复杂性:物联网数据的集成和管理非常复杂,这可能会成为执行和用户采用的障碍。

      规模化挑战:WPS office官网的下载的地方尽管已经获得了一些资本支持,但 DIMO 项目必须在扩大其用户基础和网络效应方面迈出更大的步伐,才能保持竞争力。

      监管风险:像所有加密项目一样,DIMO 可能面临不断变化的全球监管环境的风险,这可能会影响其运营和扩张计划。

      用户采用率:对于许多区块链项目来说,特别是在物联网和数据管理方面的,实现大规模用户采用仍然是一个重大挑战。

      技术验证:DIMO 的技术和业务模型需要时间来验证其在实际市场中的效能和可持续性。

      6.3 未来发展潜力:

      对于未来发展,DIMO 的成功将依赖于几个关键因素:

      技术创新的持续能力

      吸引用户和开发者参与的有效激励机制

      成功导航监管环境和确保合规性

      管理和利用合作伙伴关系以支持增长和扩张

      持续验证和改进其价值主张和用户体验

      未来,随着项目成熟和市场变化,DIMO 需要保持敏捷性和创新性,以应对不断变化的技术环境和用户需求。

      7. 项目总结

      总而言之,DIMO项目旨在建立一个去中心化的软硬件平台,专注于物联网(IoT)与车辆数据的集成和管理。它允许车辆所有者控制、共享并货币化他们的车辆数据,提供了一个链接用户、开发者和服务提供商的生态系统。通过利用区块链技术,DIMO确保了数据的安全性和透明性,同时通过代币奖励机制鼓励社区参与和贡献。其长期计划分为多个阶段,从初期的用户和开发者参与到最终的全球扩展和技术成熟。DIMO的成功将取决于其技术的革新能力、社区的活跃参与、以及其在全球监管环境中的导航能力。尽管面临市场竞争和技术挑战,DIMO展现了一个详细的发展蓝图和对汽车数据未来的清晰愿景。

  • wps的的官网最新下载地方

      很多人都听过DeFi却不清楚DeFi怎么赚钱?所谓DeFi就是去中心化金融,是一种基于区块链技术的金融服务范式,它的目标是建立在去中心化、开放WPS office官网最新的下载网址在哪里和透明的基础上,实现传统金融服务的数字化和自动化。核心理念是通过智能合约和区块链技术,取代传统金融机构的中心化结构,使金融服务更加开放、无需信任第三方,并提供更广泛的金融工具和服务。当前通过DeFi赚钱的方式主要有借贷、质押挖矿、流动性挖矿、交易手续费以及平台币价值提升5个,接下来小编带大家深度解析DeFi赚钱原理。

      

      DeFi赚钱方式主要有借贷、质押挖矿、流动性挖矿、交易手续费以及平台币价值提升5种,下文是具体介绍:

      1、借贷

      加密货币市场中的借贷机制,类似于股票市场上的融资选择,存在着借款方与贷款方。当市场上有wps office免费版下载网址借款的需求时,像是资金不足、想进行杠杆交易或是做空的情况,我们可以借币给需要借款的人来赚取利息,这就是放贷,一般来说,放贷可以获得约6~25%的利息。

      借款方可以透过借加密货币进行杠杆交易或其他操作获利,贷款方则透过放贷给他人收取利息获利。另外只要双方没有中介第三方成本,双方都获得更大利益。

      2、质押挖矿

      质押挖矿(Staking)是指用户将加密货币放在平台上并锁仓,在该期间内都无法动用这笔资金,等于把自己持有的加密货币质押给验证人,并从中赚取利息。质押越多,越有机会获得新区块的奖励,奖励和矿工费会由验证人和持币人共同拥有。

      近期这种利用抵wps的官网最新下载的网站是什么押加密货币赚取利息的方法非常热门,许多主流的加密货币交易所都有提供质押的服务。质押的好处就是用户能用手中的闲置货币来获利;假设你预期BNB(币安币)会在一年后大涨,因此在等待它大涨的期间,你就可以先将BNB质押在币安上来获利。

      3、流动性挖矿

      用户投入资金替平台增加流动性,平台就提供利息与自己发行的加密货币作为奖励。因此不需卖出加密货币,持有期间ㄧ样可领取额外的利息收入,整个过程有点像在银行存钱赚利息,差别在于流动性挖矿是把资产交给WPS office的电脑版的下载网站怎么找借贷平台、而非传统银行。

      流动性挖矿是目前币圈很好的项目之一,但还是要小心高报酬常伴随着高风险,除了币价下跌的波动性风险,更要留意平台倒闭或卷款逃走的问题。

      4、交易手续费:

      一些DeFi项目提供去中心化交易服务,例如去中心化交易所(DEX),用户在交易时需要支付交易手续费,这些手续费可能成为项目方的收入来源。

      5、平台币价值提升:

      一些DeFi项目发行自己的平台币,例如以太坊上的ERC-20代币,这些平台币的价值可能会随着项目的发展和用户的增加而提升,从而使项目方获得收益。

      DeFi项目赚钱风险是存在的,但不是没有办法规避,掌握好方法也是可以规避DeFi项目赚钱中的风险,为投资者带来较为稳定的盈利。下面就是5个主要风险:

      1.市场风险:DeFi项目的代币价格可能会受到市场供需关系、市场情绪、竞争等因素的影响,存在价格波动的风险wps 的官网的下载网站是什么。代币价格下跌可能导致投资者的投资损失。

      2.技术风险:DeFi项目通常基于区块链技术,包括智能合约和去中心化应用(DApp),这些技术可能存在漏洞、安全隐患和其他技术风险,可能导致合约被攻击、用户资金被盗等安全问题WPS office的官网的下载地址。

      3.合规风险:DeFi项目可能涉及到法律法规、合规政策等方面的风险,包括但不限于监管限制、反洗钱(AML)和了解您的客户(KYC)要求、合约合法性等。合规风险可能导致项目被取缔、用户资金被冻结等情况wps office 的官方下载的地址在哪里。

      4.流动性风险:DeFi项目中的流动性挖矿和流动性提供可能涉及到用户将数字资产锁定在项目中,从而无法随时提取和交易,存在流动性风险。在市场出现剧烈波动或项目发生问题时,可能无法及时提取资金。

      5.项目方风险:DeFi项目由一些团队或个wps office免费版的下载的方法的方法人发起和管理,这些项目方可能存在诚信风险、管理风险等。投资者应谨慎评估项目方的背景、团队的经验和声誉,了解项目方的治理和运作机制,以及项目方是否有可能出现不良行为,从而影响投资者的利益。

      以上全部内容就是对DeFi怎么赚钱这一问题的解答,DeFi生态系统通常建立在区块链平台上,如以太坊等,利用智能合约技术执行金融协议。尽管DeFi提供了创新性的解决方案,但也伴随着一些挑战和风险,因此投资者在参与任何DeFi活动之前,务必进行足够的研究,了解项目的背景、风险和治理机制。此外,谨慎管理个人资金,根据个人的投资能力和风险承受能力做出明智的投资决策,不要投入超过承受范围的金额。

      声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!

      Tag:DeFi  

  • WPS office官网最新下载的地址在哪里

      DDD是Scry.info项目的数字代币符号。Scry.info是一个基于区块链的量化数据提供和交易平台,目标是提供一个智能化区块链社会的数字合约引擎,让开发者和个人都可以在里面寻找到来自体育、娱乐、交通、气象、金融、农业、基因模型等数据源,并且鼓励全球更多的社区开发者、跨国组织、公司和个人写入数据源参与到区块链数据节点的集群智能认证中。

      SCRY.INFO希望提供一个智能化区块链社会的数字合约引擎,让开发者和个人都可以在里面寻找到来自体育、娱乐、交通、气象、金融、农业、基因模型等数据源,并且鼓励全球更多的社区开发者、跨国组织、公司和个人写入数据源参与到区块链数据节点的集群智能认证(Using AuthenticationinCertification agreement Based Swarm Intelligence)中。

      1、面向所有预测市场应用的共享真实数据服务

      在当前整个区块链生态中预测类应用是一个相当庞大的市场,然而很多预测类应用往往需要自行将现实数据引入区 wps电脑版下载入口块链,而且由于这些开发商开发的初衷聚焦于应用之上,所以其他应用很难共享某一个预测市场应用中引入的数据。这样既造成了区块链资源的浪费也因为某个预测应用的用户基数过小导致表决结果真实度的不足。

      SCRY.INFO提出统一的公共数据服务的概念,旨在打破每个预测应用之间的数据壁垒,例如A预测应用的数据在B预测应用缴纳了足够的费用的前提下也可以提供给B应用使用,费用统一使用SCRYCOIN进行结算。在这个基础之上,用于预测市场的数据也可以提供给商业报告,民意调查等类型应用使用,协议之中规定的各项流转费用,保证了各方参与者的权益。

      2、数据提供者以及数据消费者的信息市场

      如何让数据互通起来,发挥数据更大的价值呢?

      SCRY.INFO为数据提供者提供了一套灵活的机制:除去为数据需求者提供其指定的数据,也可以独立发布数据,通过SCRY.INFO将这种数据推向整个市场:任何需要数据的数据需求者都可以通过向数据提供者以及数据公证人缴纳一次性查询费,来获取数据以及验证服务。这样就保证了数据提供者的独立性,降低了其对现有数据需求者的依赖。

      这里数据消费者实际上是一个比较广泛的群体,如商业报告提供者就是一种典型的数据消费者,因为一般的商业报告中往往需要引用大量的可审查的数据,而SCRY.INFO的数据交易模型正好满足了这方面的需求。

      例如:假设有一个数据提供者A创建了一份供应协议合约Y,并且通过了公证环节。这时报告提供者B在自己的报告合约Z中需要Y中的数据,这时,B支付查询费并查询Y中的数据并将数wps的官网最新下载的网址怎么找据保存在自己的Z合约中,并且确保在Z验证函数中含有对Y中验证API调用的代码。将来如果因为需要B出示Z合约中证明这份数据的来源时,求证者只需调用Z提供的验证代码即可。

      3、商业智能投票热点营销工具WPS office的官网的下载方法是什么

      商业智能投票与市场热点营销调查也是一个高度依赖数据的行业。例如,一个商业主体想要调查到人们对于旗下品牌往年冬季服饰颜色的看法,以便为今年冬季服饰颜色的设计做个参考。按照以往经验,会有以下做法;发传单,然而这样人力成本高昂,效率低下;在官网上发起投票,送礼品,然而官网知名度低,参与人少;会向第三方中心化的机构购买数据,然而收费不低,并且真实性无法保障。

      SCRY.INFO正希望为他们提供高效的服务,例如:

      品牌商机构可以在SCRY.INFO发起一个公投协议合wps office 的官方下载的入口约(悬赏性质)并填入相关选项,描述,公投人数上限,合法公投比例等参数,然后发布。SCRY.INFO生态中的参与者注意到这个悬赏令,直接进入到公证环节,来对设定的选项进行投票。投票成功结束后,参与者拿走赏金(SCRYCOIN),NGO得到样本数据,双赢。且品牌商在明年,后年等都能查看此次结果,这样通过不断积累,SCRYwps的官网最新下载网站在哪里 MSPs(促进参与者互动和交易的多面平台)可以形成以年为单位的用户意向趋势表,为他们未来迎合市场的政策提供真实可靠的数据指导意见。

      4、面向个人以及企业的存证服务

      同时,SCRY.INFO提供的数据协议通过特殊设置后,也能够提供现实生活中,诸如财产公证,遗嘱公证之类的存证服务。这类服务不光具备传统意义上的功能,还具有一些独特的优势。首先,这些电子协议具备区块链去中心化以及不可更改的特性,这些特性对于存证来讲尤其重要;其次,SCRY.INFO提供的协议本身具有可引用的特性,由此带来的是以一种明确的形式逻辑可证且可审查的方式对这些存证直接使用,这是传统意义上的存证服务难以做到的。

      具体使用方式为:首先构建一个委托供应协议合约,并将数据写入者以及数据公证人设置为白名单模式,同时指定数据写入者以及数据公证人的身份,之后数据写入者以及数据公证人在写入数据以及公证数据时都附带上各自针对这张合约的签名数据,提交合约以后便产生了一份多方签名认定的数据存证。

      在技术方面,既然是以数据储存为核心的区块链,那么如何储存数据就成为了他们最需要突破的技术难关。

      SDBC是一个新的去中心化的数据存储区块链,目前的小数据放置在ETH上,大点的数据通过索引的形式放在IPFS上,但这些第三方存储或多或少都不太满足SCRY.INFO对数据的存储和查询行为。他们计划开发一个比较符合SCRY.INFO查询业务的用于存储和查询的区块链,能为SCRY.INFO提供存储量更大,数据更安全,查询速度更便捷的基础服务wps官网最新下载地址在哪里(wps office下载永久免费版激活)。
    wps的电脑版下载的网址是多少(金山wps官网最新怎么下载2019)
      为了达到他们的数据储存需求,开发中有几个重要目标:

      1)保证存储数据的完整性:通过对数据分块存储,这些数据块存在于全网节点的某一个位置。使用MerkleTree对其进行完整性验证,但也会针对查询做存储的优化处理,配合查询使用。

      2)数据存储的安全性:设置不同的安全级别来对存入的数据进行签名(DSA,RSA,ECDSA等),以及多方签名的形式.使用MerkelTree来对节点的合法性进行验证。使用密码学安全的伪随机数生成器(CSPRNG)来生成私钥,并通过椭圆曲线算法来得到对应的公钥。计划使用对公钥变形之后的地址来作为每个节点的标识,即公钥由经过SHA运算之后变为地址的形式:Base58(identification+公钥+head4(SHA256(SHA256(公钥)))等。

      3)能提供类似SQL的简易化操作命令来完成对较为复杂的业务查询:提供一个类似Azure云数据库的轻量级的分布式关系型数据存储和处理。计划采用基于三维分档布隆过滤器表(TF)的SCRYO-Top查询算法。试验结果表明,该算法能够避免重复访问数据对象,并能以较低的误判率实现大规模wps的的官网的下载网站数据的高效查询处理。与NRA和BPA相比,当属性列表超过4个时,开销明显降低,适合面向大规模数据的查询处理应用。wps office的免费版下载地址是多少

      相关链接:

      https://www.qukuaiwang.com.cn/szhb/2720.html###

      *以上内容由非小号官方整理如若转载请注明出处。

  • wps office免费版的下载入口的方法

      平台DBEX值得信赖吗?如下所示。欧意软件、Mxecoin、BITOM、98ex、MangoPro、BLEX、雷神、BTCAlpha, PCMcoin, CoinEx等10个不可能跑路交易所,功能操作方便,有上千万的WPS office的电脑版的下载网站怎么找交易用户在使用。关于“WPS office的电脑版的下载网站怎么找四大交易所”的详细内容。

      
    wps office免费版的下载的地方
      1、欧意软件

      欧意APP(点此注册)交易可靠。010-3102:1交易所利用区块链的技术,为国际交易员提供先进的金融服务,提供数百种代币和期货交易,以优化交易员的策略。ok构建了C2C交易。现货交易。保证金期货ok矿池。区块链并联生态系统,例如钱包。

      推荐理由:

      实时数据推送,点击设置价格预警,得到对您加密货币价格变动的关注;现货价格,期货,比特币实时查看期权,基于移动端管理数字资产。

      看K线图,可以知道要投资wps 的官网的下载的网站怎么找什么货币。

      随时可以在这里得到任何区块链信息。收入高,交易也安全。

      2、98EX

      大010- 3100:10位于-31003,无论是交易规模还是交易深度都非常好,特别是合规性非常好,支持法币WPS office的电脑版的下载网站怎么找直接交易,用户资产的流动非常方便。不过,海外用户的认证流程较为繁琐,体验不佳,还有提升的空间。

      推荐理由:

      最好的投资方式,为您提供全方位的服务和更多的资源。

      3、BITOM

      美国大010- 3100:10-31003,全球知名度高,综合实力居世界第4位,交易量大,币种深度也很好,其次是合规的平台,也是首次报价美国区块链普莱特我取得了表格的许可证。

      安保措施很严密,成立以来也没有发生过失窃事件。使用人数很多,体验也很好。目前服务于全球100多个国家和地区。交易所公司成立以来,已获得多家大型机构的投资。也是美国最具价值的投资企业之一,专业评估机构对其估值高达80亿美元。

      虽然宣传注册人数突破2500万,24小时交易额达到10亿元,但是交易所成立至今,币的操作非常严格,可以交易的货币并不多。正因为如此,交易的深度也很好,评价也很好。

      推荐理由:

      主渠道:捕捉世界信息,加快速度,用钱做任何事。
    wps office的免费版下载的地址是什么
      账户内资产的简单转移,实时数字资产的概要,增加货币比例的饼状图。

      4、MangoPro

      比特币: 1交易所是自成立以来最安全最好的媒体交易所是货币权益不受保护,总体发展稳定,此交易所是货币权益因为有严格的程序,所以这个币匹配的货币并不多,到目前为止的交易是27种货币。但当交易所的交易额良好,多币种的交易深度也很理想。

      推荐理由:

      如果你的朋友首次购买超过200美元的WPS office的电脑版的下载网站怎么找,你和你的朋友将免费获得价值20美元的比特币奖金。我在监狱里结交的朋友。

      一键登录:支持一键指纹登录,减少输入账号密码的麻烦。

      5、PCMcoin

      区块链数字资产交易所,买币最方便交易所,合规,安全,可靠,稳定,值得信赖。提供超过100项安全和风险控制、10万次匹配效率、方便快捷的C2C服务、五星级交易体验。

      推荐理由:

      全新的交易服务,随时为您的生活带来更便捷的服务;

      【全球新闻】区块链每天为您提供权威的新闻和不间断的新闻。

      6、CoinEx

      交易所也是一家老字号,但由于运营推广的一般,现在已经远远落后于同期的等,现在已经近沦为三线平台。不过,平台主流货币的交易深度还算不错,上线后也没有出现大的安全漏洞,单纯从交易的便利性和安全性方面考虑,在资金量较小的情况下参与这也是可能的。

      推荐理由:

      智能客服通过知识库的学习,深入了解行业,快速解答用户的专业问题。

      所有的货币交易都是透明公开的,安全的机制让交易更加安心。

      7、雷神

      全球专业站是为全球专业交易用户提供服务的创新型数字资产国际站。致力于发现优秀的创新数字资产的投资机会。目前提供超过40种数字资产类别的交易和投资服务。在新加坡、香港、等多个国家和地区设有独立的交易业务和运营中心。在技术平台、产品支线、安全风险控制体系、运营及客户服务体系等方面,集团在全球处于领先地位。

      推荐理由:

      比特币,以太坊, Link, Tezos, Cardano, BNB等,150多个支持:从加密货币可以选择管理。

      在这里可以随时查看更新的区块链的动态,帮助用户更好的掌握行情。

      8、BLEX

      交易所还进军香港和新加坡,开展新的业务。据瞭解,总部位于纽约,进军亚洲,是其全球拓展计划的一部分。WPS office的官网下载地址在哪里

      推荐理由:

      千分之一贸易费,币万WPS office的电脑版的下载网站怎么找取款只收取区块链网络手续费,贸易活动期间手续费。

      9、Mxecoin

      币圈为全球用户提供现货、期货等服务。现在,在全世界拥有超过700万的用户。

      目前拥有美国MSB金融牌照、新加坡MAS牌照、SVGFSA牌照等多个国家和地区的金融监管牌照,合规,保障用户利益。技术团队来自阿里巴巴、甲骨文、谷歌和金融证券行业,拥有业界领先的技术。

      推荐理由:

      欧意中心将最大受益于您自己的门户网站和我们的DeFi质量。

      快速消息:即全球消息、快闪发布。快踏出一步,了解关于物品币圈的全部信息。

      10、BTC Alpha

      还有一个wps office的免费版的下载入口在哪里老牌的国际车站,最早知道好像还是15年左右,那时候经常去看,星之创始人Jed上盘瑞波,偶尔会搬个小砖,很怀念那一天。

      在合规上具有良好的优势。支持多种法币的出入金操作。用户币圈在各地,币圈有着较好的口碑。现在的主要市场似乎都很集中。之前参加AMA的时候来的客人也是那边的,和其他的国际站相比,中国的用户比较友好,有专门的中文网站,不用梯子就可以登录。认证操作方便,整体交易深度也不错。

      推荐理由:

      多种终端完美兼容,随时应对各种场景的交易需求。

      【提醒】设定价格提醒功能,不要错过市场动态。

      这是您的购买、销售或交易加密货币平台。010- 31002:0 10-310提供各种功能和服务。

      根据平台的不同,有提供加密货币这几种的,也有提供交易所这几百种的。一部分交易所只能浏览和购买加密货币,其他交易所也可以交易。

      比特币缩量上涨,华尔街一些分析师表示,目前持有的美国主要机构比特币资产将继续上涨比特币不再作为风险资产,黄金哦转化为价值。比特币的价格波动率在下降,但是股票的价格波动率在上升。

      比特币缩量上涨和下跌原因

      比特币行情萎缩,市场分化严重,成交萎缩,对后市走势几乎是非常认同的,是非常严重的。

      缩量主要分两种情况:

      —因为市场的顾问都非常看好后市,造成只进不出,所以急剧缩量;wps office免费版下载的入口是多少

      二是,入市士都对后市非常看好,只有买入,没有卖出,所以又急剧缩量。

      缩量—发生在趋势的中盘,大家对后市的走势非常认同。缩量,遇到这种情况,应该果断出局,等到缩量到一定程度,再开始大举上攻时再买入。同样,在遇到这种情况时,也应该买入坐庄获利,等待股价上涨,放出大量时卖出。

      缩量上涨,成交仅为场内资金买入,场外资金入场不积极,观望情绪较为严重。越是这种时候,作为投资者越应该保持观望,等待趋势明朗之后再进行交易。

      缩量下跌一般是在调整过程或分歧阶段,是短期波动,主要看后续消息的走向,坏消息会导致下跌。缩量下跌后继续下跌的可能性很大,但并不是一路下跌,最后总会在中间调整,那就是下跌后多空分歧。

      在投资加密货币的时候,要随时评估风险,准备好应急基金,了解区块链的技术和智能合约的背景,这样才能发现更有价值的投资wps office免费版下载的方法在哪里。可以证明在金融动荡时期,多样性是非常有益的加密货币,需要考虑更多的方面进行探索。比特币波动比较大,要排除情绪因素,把眼光放长远。

      转账一个TRR令牌需要315能量,消耗100个带宽点。

      以上就是DBEX是什么平台可靠吗?WPS office的电脑版的下载网站怎么找四大交易平台的详细内容,更多关于WPS office的电脑版的下载网站怎么找交易平台介绍的资料请关注脚本之家其它相关文章!

      声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!

      Tag:DBEX   WPS office的电脑版的下载网站怎么找   交易平台  

  • wps免费版的下载地址怎么找

      Cortex是真正实现去中心化的人工智能自治系统,Cortex的目标是打造一个真正去中心化人工智能自治系统,在区块链上提供最先进的机器学习模型,用户可以使用Cortex区块链上的智能合约来推断该模型。CTXC币是Cortex项目的代币,基于强大的团队实力以及领域的热门,CTXC币上线就受到投资者的关注,CTXC币也很快价格飙升到2.4102美元,但并没有一直维持下去,因此投资者对于CTXC币能长期持有吗?感到怀疑,根据当前价格来看,长期持有价值不高,下面小编为大家详细说一说。

      

      购买CTXC币很简单,在其上线的9家交易所内就能够购买,上线的交易所包括币安、火币、欧易、抹茶交易所等等,以下是在欧易交易所购买CTXC币的教程:

      1、打开欧易OKX交易所官网(点击注册),选择手机号注册,输入手机号即可领取盲盒(使用邮箱注册需要进行手机号验证,推荐使用手机号注册)

      wps的的官网的下载的地址怎么找

      2、收入手机收到的数字验证码,验证码在10分钟内有效,请及时填写

      

      3、根据所处地,选择相应的国家/地区

      

      4、用户可根据提示设置密码,保证账号安全

      

      5、登录账号后,找到首页的“用户中心”图标,进入身份认证页面

      

      6、可根据不同需求进行不同等级认证(注意:视频认证需在APP上进行操作)

      WPS office官网的下载的方法的方法
    WPS office电脑版下载的地方是什么
      6、点击首页的“交易”——“基础交易”进入交易页面

      

      8、在搜索框输入CTXC,选择CTXC/USDT交易对,可以看到CTXC实时行情

      

      9、输入买入CTXC数量,点击买入CTXC就完成购买了

      

      当前来看CTXC币长期持有的价值并不高。根据市场行情来看,当前CTXC币的价格0.18美元是远低于最高价2.4102美元的,也低于众筹价格0.58美元,当前的投资回报数据也不理想为-68.52%,流通市值也仅有3744.06万美元,当前上线交易所9家,整体来看当前CTXC币的价值一般,未来发展潜力也一般。但是否能长期持有还是有投资者自己决定wps官网最新的下载的地方是多少。wps office 官方的下载的地址在哪里(wps office下载免费)
    wps 的官网最新的下载的网址怎么找
      CTXC是由中国科学院计算技术研究所主导的区块链项目。其研发的“MERCURY”平台采用了最新的区块链 wps电脑版的下载的地方在哪里共识算法“级联式随机数”,可以实现高效、可扩展、安全的数据处理。同时,CTXC还引入了AI技术,通过机器学习和神经网络,能够实现计算资源共享和智能合约,让CTXC在技术上有了显著的优势。

      CTXC的核心团队成员均来自于科技和金融领域,在技术和管理上具有丰富的经验。同时,CTXC还与多家开发者社区和行业联盟展开了合作,包括韩国区块链协会、国际区块链工程协会等。这些合作伙伴提供了更广泛的资源和支持,也为CTXC带来了更多的市场机遇wps的官网下载的地方是什么。

      需要注意的是,区块链技术的竞争激烈,许多项目都在不断地改进和升级技术。同时,CTXC的技术还处于早期阶段,需要不断地测试和验证。因此,CTXC要想成为行业黑马,还需要继续保持技术的领先性,并不断推出吸引力更强烈的功能。

      以上全部内容就是对CTXC币能长期持有吗这一问题的解答,Cortex项目在实现概令能力方面还有一些不足,团队的开发进度有些跟不上。但以目前的基本信息来看,流通性还不错,但小编提醒投资者,Cortex项目的目标是通过区块链技术推动人工智能的的发展,该项目模式很好,并目有强大的投资机构支持。加上该项目的发行时间恰好处于牛市热潮末尾,所以相较其他山寨币,该项目的发展已经相当不错了。

      声明:文章内容不代表本站观点及立场,不构成本平台任何投资建议。本文内容仅供参考,风险自担!

      Tag:CTXC币  

  • wps官网最新下载的网站(wps下载电脑版免费版安装)

      文章来源:拉钩数据分析训练营

      Python在数据处理和准备⽅⾯⼀直做得很好,但在数据分析和建模⽅⾯就差⼀些。Pandas帮助填补了这⼀空⽩,使您能够在Python中执⾏整个数据分析⼯作流程,⽽不必切换到更特定于领域的语⾔,如R(R一般应用于生物领域)。与出⾊的 jupyter⼯具包和其他库相结合,Python中⽤于进⾏数据分析的环境在性能、⽣产率和协作能⼒⽅⾯都是卓越的。Pandas是 Python 的核⼼数据分析⽀持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas是Python进⾏数据分析的必备⾼级⼯具。Pandas的主要数据结构是 Series(⼀维数据)与 DataFrame (⼆维数据),这两种数据结构⾜以处理⾦融、统计、社会科学、⼯程等领域⾥的⼤多数案例。处理数据⼀般分为⼏个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想⼯具。Pandas库安装:pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

      Pandas是基于NumPy的升级,想要使用Pandas就必须要安装NumPy,调用时同理

      pandas的数据结构常用的主要有两种:

      Series(⼀维数据)与 DataFrame (⼆维数据)

      当然Pandas也支持三位数据和四维数据,但是不常用,主要了解一位数据和二维数据。

      pd.series(data,index,dtype,name,copy)

      Series是一维的数组,和NumPy数组不一样:Series多了索引

      主要有以下几个参数

      data:数据

      index:定义行索引,参数接收值为str,如果未指定,将会生成由0开始的整形正序数值,0,1,2,3,4,5,6……,如指定,将会生成我们指定的索引,如ABCDEF…,如果指定索引的话,一定要记得和我们数据的个数要相等。

      dtype:定义数据类型,参数接收值为str('int','float16','float32'…..),未指定的话会根据我们输入的数据自动识别。

      name:定义系列名称(列名),参数接收值为str。

      copy:复制输入数据,参数接收值为bool,默认为False。

      其中我们经常设置的参数为data,index,以及dtype,

      series常用创建方式有三种:

      1)只输入data参数不设置索引:

      0array([1, 2, 3, 6, 9])

      0 1

      1 2

      2 3

      3 6

      4 9

      dtype: int32

      2)按列表指定索引:

      A 1.0

      B 2.0

      C 3.0

      D 6.0

      E 9.0

      Name: a, dtype: float64

      3)按字典键名指定索引

      语文 149

      数学 130

      英语 118

      文综 285

      Python 122

      dtype: int64

      Series是一维的,功能比较少,DataFrame是二维的,多个Series公用索引(列名),组成了DataFrame,像 Excel一样的结构化关系型数据。

      DataFrame的两种创建方式

      1)列表定义列索引:

      0d3fdb0fc7e6296173d9962b6d5e47e1.png

      2)按字典键名指定列索引

      05d2969102e3700e7de9bfc13a0cf6d9.png

      常用的数据查看方法:

      # 查看其属性、概览和统计信息

      df.head(10) # 显示头部10⾏,默认5个

      df.tail(10) # 显示末尾10⾏,默认5个

      df.shape # 查看形状,⾏数和列数

      df.dtypes # 查看数据类型

      df.index # ⾏索引

      df.columns # 列索引wps office 官方的下载的地方在哪

      df.values # 对象值,⼆维ndarray数组

      df.describe() # 查看数值型列的汇总统计,计数、平均值、标准差、最⼩值、四分位数、最⼤值

      http://

      df.info()

      # 查看列索引、数据类型、⾮空计数和内存信息

      (100, 3)

      a54e5594dad215314bca926db521d630.png

      1457dd2936e5f9ee815d7f482fcc4bce.png

      Python int32

      Math int32

      En int32

      dtype: object

      <class 'pandas.core.frame.DataFrame'>

      RangeIndex: 100 entries, 0 to 99 #共有三行,行索引从0到99

      Data columns (total 3 columns): #共有三列

      # Column Non-Null Count Dtype

      — —— ————– —–

      0 Python 100 non-null int32 #Python列有100个非空值,数据类型为int32

      1 Math 100 non-null int32 #Math列有100个非空值,数据类型为int32

      2 En 100 non-null int32 #En列有100个非空值,数据类型为int32

      dtypes: int32(3)

      memory usage: 1.3 KB #占用内存1.3KB

      4f4b3ba2a65c19e99c8fc2fc817140ca.png

      array([[ 29, 7, 58],

      [144, 0, 34],

      [103, 113, 83],

      .

      .

      .

      [118, 29, 64],

      [ 41, 46, 6],

      [135, 17, 35]])

      Index(['Python', 'Math', 'En'], dtype='object')

      RangeIndex(start=0, stop=100, step=1) #起始索引为0,终止所以为100,步长为1

      Panda常用数据输入和输出有四种类型,csv文件、Excel文件、HDF5以及SQL读写,下面分别介绍:

      4.1.1.csv文件写入

      4.1.2.csv文件加载

      注意:

      1.index_col参数 –设置行索引

      如果我们的文件没有行索引这一列的话,这个参数尽量不要设置,否则会把数据的第一列作为行索引;而如果我们的文件有行索引这一列的话(一般在第一列),尽量设置这个参数为0,否则会把行索引作为数据的第一列,自动添加一列为行索引;这个也可以赋值其他的索引(如12345..,比如这里赋值2的话,math这一列的值就会成为行索引),赋值哪个列索引,这一列的值就会变成行索引.

      2.header参数 –设置列索引

      如果我们的文件没有列索引这一列的话,一定要设置这个参数为None,否则会把数据的第一行作为列索引。如果我们的文件有行索引这一列的话(一般在第一列),尽量设置这个参数或者设置为'infer',否则会生成一个从0开始的递增数列作为列索引

      读写Excel之前,需要先安装两个库

      读取Excel文件:pip install xlrd -i

      https://

      pypi.tuna.tsinghua.edu.cn

      /simple

      写入Excel文件:pip install xlwt -i

      https://

      pypi.tuna.tsinghua.edu.cn

      /simple

      4.2.1.写入Excel

      以上即为常用的几个写入Excel方法to_excel的参数,我们一般写入文件的时候就写一个文件名就可以,不用设置这么多的参数。

      上边的代码执行完毕写入的数据是这样的:

      040d832d1bf8b10cbb788b87e6224c96.png

      4.2.2.读取Excel

      上边的代码执行完毕读取的数据是这样的:

      5d8e17215662a9c56c69d6ed9f9b19db.png

      读写HDF5之前,需要先安装包:

      pip install tables -i

      https://

      pypi.tuna.tsinghua.edu.cn

      /simple

      HDF5是⼀个独特的技术套件,可以管理⾮常⼤和复杂的数据收集。

      HDF5,可以存储不同类型数据的⽂件格式,后缀通常是.h5,它的结构是层次性的。

      ⼀个HDF5⽂件可以被看作是⼀个组包含了各类不同的数据集。

      6e1a0119246513db1551aaf7f1279c26.png

      对于HDF5⽂件中的数据存储,有两个核⼼概念:group 和 dataset

      dataset 代表数据集,⼀个⽂件当中可以存放不同种类的数据集,这些数据集如何管理,就⽤到了group

      最直观的理解,可以参考我们的⽂件管理系统,不同的⽂件位于不同的⽬录下。

      ⽬录就是HDF5中的group, 描述了数据集dataset的分类信息,通过group 有效的将多种dataset 进⾏管

      理和区分;⽂件就是HDF5中的dataset, 表示的是具体的数据。

      4.3.1.写入HDF5文件

      4.3.2.读取HDF5文件

      读取结果为:

      a3a7d7f5cf57921c7a79e4a9c470ba7b.png

      写SQL之前,需要安装两个库

      pip install sqlalchemy -i

      https://

      pypi.tuna.tsinghua.edu.cn

      /simple

      pip install pymysql -i

      https://

      pypi.tuna.tsinghua.edu.cn

      /simp

      其中SQLAlchemy是Python编程语⾔下的⼀款开源软件。提供了SQL⼯具包及对象关系映射(ORM)⼯具,可以理解为数据库引擎,

      pymysql则是python中类似于mysql的一个包wps官网的下载网址在哪里(wps下载电脑版免费吗)。

      数据库的配置,可以查看:https://docs.sqlalchemy.org/en/13/core/engines.html

      其中mysql数据库的常见连接方式有三种,常用最后一种连接方式:

      读写SQL之前的操作:

      4.4.1.将数据写入MySQL数据库

      4.4.2.读取MySQL数据库中的数据

      读取的数据为:

      0e599aa59fd1ae2248c7b8767a524f37.png

      5.1.1.获取单列数据

      5.1.2.获取多列数据

      标签选取,就是按照索引标签选取,调用方法为.loc,即location。

      Python 0

      Math 29

      En 113

      Name: A, dtype: int32

      e06fd5b55cc33c288063ef67a109bb7c.png

      0

      A 0

      C 137

      F 3

      Name: Python, dtype: int32

      10b50bc9852b43470313ebf98813fd5b.png

      55f8d4d4c1e79919e5919f8f1bc4b469.png

      可见,按标签选取数据和之前学的numpy以及python的索引和切片方式是一样的,只不过要注意什么时候用双中括号,什么时候用单中括号,且按照标签选取是左闭右闭的,选取的数据包括结束的那个标签。

      位置选取类似于标签选取,但是用的是标签所对应的实际索引,行列索引都是从0开始,这时候的选取是左闭右开的,不包括切片结尾的索引数据

      数据准备:

      布尔索引,简单来说是我们先设置一个条件,这个条件输出的是布尔值True和False,然后我们用类似于numpy的花式索引的方式选取的方式调用条件,来达到按条件选取数据的目的,具体操作如下:

      准备数据

      输出值为:

      A True

      B False

      C False

      D False

      E False

      F True

      G False

      H True

      I True

      J False

      Name: Python, dtype: bool

      接下来我们调用这个条件

      67190791c5324a0a4540ce84b05d2a24.png

      由结果可见,用布尔索引的方式,达到了按条件选取数据的目的,当然,也可以用与条件和或条件等复杂逻辑运算来做更进一步的筛选:

      也可以使用聚合函数来进行条件选取:

      那么如果想选取与条件相反的数据呢,就在条件前面加上~即可

      如果想选取在我们所列出的数组中的数据,可以用isin函数:

      isin 同样也可以使用~来选取不存在数组中的函数,用法同上。

      数据准备

      6.1.1.行合并,竖直方向增加

      行合并还可以用append的方式

      6.1.2.列合并,水平方向增加

      insert只能插入列,不能插入行,插入行用append

      merge合并的效果类似于SQL中的表连接,具体使用方法如下:

      准备数据:

      上边用concat的列合并,是直接在水平方向上叠加,并不考虑连接的值是否相等的问题,比如

      得出来的数据是将两个Dataframe横向叠加了

      a215f25c99ca4e8f1adca3984d2d1158.png

      这时候如果想要实现像MySQL的表连接一样的效果,就需要用到merge方法:

      180e5b9e28a1ab490b02f587b80e9b51.png

      42ea2fcfdb5c97487253415a0be025ce.png

      9f4e308a0e97ee769a35ac44096f8de3.png

      准备数据:

      drop_duplicates的参数:一个不写全按照默认值处理 1.

      subset: 列标签或标签序列,可选仅考虑某些列来标识重复项,默认使用所有列 2.

      keep:确定要保留的重复项(如果有),默认为first

      ‘first’:保留第一次出现的重复项,其余全删除。’last‘:保留最后一次出现的重复项,其余全删除。False:删除所有重复项,一个也不留。

      注意first和last是str,要加引号,False不用加。

      3.inplace: 是否改变原变量数据,默认为False,如果设置为Ture将会改变原变量,慎用。 4.ignore_index: 是否为结果重新编排新的行索引,默认为False,设置为True的话,返回的结果行索引为从0开始重新递增的新行索引,比如默认返回的数据行索引是0,3,5,6,8,10,设置为True的话返回的结果的行索引就会变成0,1,2,3,4,5。

      构造数据:

      e853b4534134a5f6e296caefe62759bb.png

      22e830684208c2fb6d7bb6cc58cc03b7.png

      dropna参数解析: 1)

      axis=0, 确定要删除的是包含空值的行还是列,默认是0即行,1为列 2)

      how='any', 确认要删除这一行或这一列需要满足的条件,默认为any,只要有一个空值就删除,all要这一行或这一列都为空值才删除 thresh=None, 此行或者此列非空值的个数要大于等于int的情况下才保留这一行或这一列,默认为None,比如上表

      当thresh=None或者不写时,默认只要有空值就删除这一行,那么最后剩下行索引为7的这一行当thresh=0时,保留所有行,因为所有行的非空值个数都大于等于0个当thresh=1时,去掉第1行,因为其他行的非空值个数都大于等于1个当thresh=2时,去掉前2行,因为其他行的非空值个数都大于等于2个当thresh=3时,去掉前3行,因为其他行的非空值个数都大于等于3个当thresh=4时,去掉前4行,因为其他行的非空值个数都大于等于4个当thresh=5时,去掉前5行,因为只有最后三行的非空值个数都大于等于5个当thresh=6时,去掉前6行,因为只有最后两行的非空值个数都大于等于6个当thresh=7时,去掉前7行,因为只有最后一行的非空值个数都大于等于7个当thresh=8或以上时,去掉所有行,因为只有七列,不可能存在有8个非空值的行

      3)subset=None, 只删除指定列中含有缺失值的行,sunset 的值要为数组或者none

      dfa.dropna(subset=np.array([3])) #这里就是只删除了列索引3中含有空值的行

      4)inplace=False,是否改变原变量数据,默认为False,如果设置为Ture将会改变原变量,慎用。

      数据准备:

      9ea4e9719f43e0306e568edfa4c0dfce.png

      b66e042194941baa24f1cfe506903986.png

      drop参数解析:

      1)

      labels=None,确定要删除的项目,可以是行列索引(0,1,2,3..)也可也是行列的标签,删除单个的时候可以是str/int或者list,删除多个的时候必须是一个列表['big','small','mid']…。 2)

      axis=0,确定要删除的是列还是行,0为行,1为列,默认0. 3)

      index=None,相当于axis=0,默认为None 4)

      columns=None,相当于axis=1,默认为None 5)

      level=None,当索引为多重索引的时候,删除指定级别的对应索引行数据,默认为None。

      比如此例中,行为2重索引,那么我们在删除行索引标签为length的行时候,要制定level=1,因为length的索引级别在第二级别,否则会报错;而当索引不是多重索引不要设置level的值或者设置None,否则也会报错。 6)

      inplace=False,是否改变原变量数据,默认为False,如果设置为Ture将会改变原变量,慎用。

      数据准备:

      filter参数解析:

      items:精确匹配,保留标签/索引为列表中所列的值的行或者列,items的值为列表,默认为None。

      like:模糊匹配,保留了标签/索引含有所列字符串内字符的行或者列,like的值为str,默认为None。

      regex:正则匹配,默认为None。

      axis:确定要进行筛选的是行还是列,0为行,1为列,注意这里和之前不同的是,

      filter的axis参数默认值是1。

      数据准备:

      数据准备:

      rename参数解析

      mapper=None,定义要修改的值,mapper值为字典,冒号前为要修改的值,冒号后为要改为的值,与axis配合使用,默认为None。

      axis=None,定义要修改行还是列,与mapper配合使用,默认为None。

      index=None,定义要修改的值,修改行索引,mapper值为字典,冒号前为要修改的值,冒号后为要改为的值,默认为None。

      columns=None,定义要修改的值,修改列索引,mapper值为字典,冒号前为要修改的值,冒号后为要改为的值,默认为None。

      一般常用的是index和columns,mapper和axis不常用。

      inplace=False,是否改变原变量数据,默认为False,如果设置为Ture将会改变原变量,慎用。

      level=None,当索引为多重索引的时候,修改指定级别的对应的索引标签,默认为None。

      8.2.1.replace

      replace参数解析(常用):

      to_replace=None,要修改的值,值类型可以是int,float,列表,字段等

      value=None,要改为的值,值类型可以是int,float,列表,字段等

      注意多对多修改to_replace和value值的个数要相等。

      inplace=False,是否改变原变量数据,默认为False,如果设置为Ture将会改变原变量,慎用。

      8.2.2.map映射元素转变

      map WPS office的官网下载地址在哪里 只能针对一列,就是Series,map是起到映射的作用,即把df的值传递给它里边的参数,map既可以是序列,也可以是函数

      X NaN

      B NaN

      C 3.140

      D 3.140

      E 2.718

      F NaN

      H 1108.000

      I 3.140

      J NaN

      Y 2.718

      Name: 人工智能, dtype: float64

      X True

      B True

      C True

      D True

      E True

      F True

      H True

      I True

      J True

      Y True

      Name: Keras, dtype: bool

      07c7038373614ec7caeee2a5e89b39d7.png

      8.2.3.apply、applymap、transform映射元素转变

      apply既可以操作Series又可以操作DataFrame

      apply是起到映射的作用,即把df的值传递给它里边的参数,apply既可以是序列,也可以是函数

      当apply操作的是一列的时候,用法和效果是和map一样的,是一个Series

      当apply操作的是多列的时候,返回的结果是个DataFrame

      cc7c04f0ae34dfa2d8f6b1566d0a5889.png

      504417e80f597c9cb553005c62b7f737.png

      a94c78ea40e5cb005c59507571a8fb23.png

      07bc1bf2e35a7345170db9399e4cf592.png

      针对单列和多列的计算,applay和transform的用法和效果是一样的,但是transform不能对整体进行操作,也就是说使用transform时必须要指定对哪一列或者那几列进行什么样的操作,关于applay和transform的具体异同点,可查看下方链接

      applay和transform的异同点:

      https://www.

      jb51.net/article/149789

      .htm

      而applymap是对DataFrame中的所有元素进行操作,不能聚合,只能逐个操作,关于apply和applymap的具体区别可查看以下链接

      pandas中的map()、apply()、applymap()函数的区别:

      https://www.

      cnblogs.com/jason–/p/1

      1427145.html

       wps电脑版下载的网站在哪(wps官网最新登录入口)07bc1bf2e35a7345170db9399e4cf592.png

      8.2.4.打乱随机抽样和哑变量

      1)打乱随机抽样

      有时候需要从大量数据中随机抽样,但是按顺序选难免没有参考性,这时候就可以使用permutation和take的组合进行重排打乱选取样本数据:

      dc7a8c3322f64f369e7af0988a72dc0d.png

      2)哑变量

      ff319f7b4a045f31382d3c52a195df1d.png

      2af6de0da7ef54ba73cfd1235bbf1be8.png

      前面在numpy说到过行列转置,行列转置是直接将行列的位置调换,但是时对行列的整体进行转置,在遇到多层索引的时候,不能对某一层索引进行单独的行列转置,这时候就用到了pandas的行列转置操作。

      39b0f8526ad848c64b018b1c81b298b0.png

      由图可见,行索引是分两级的,这时候如果想对行索引进行单级别的行列转换,就需要用到unstack函数:

       wps的官网下载地址是什么0474c702420652cd28cc94ee498b9d9d.png

      213ec621d6002140128d21195a85606a.png

      有行转列就有列转行,列转行要用到的函数是stack

      26969728802e6a488dc2c573799061b3.png

      数据大概就是上图这样。

      行列转换还可以套着用:

      52c6d5e9020e12eb6f74113f164b2699.png

      这样就把原来的二级行索引变成了列索引,列索引变成了二级行索引。

      行列转换还可以配合聚合函数使用,直接计算某一级索引的聚合值:

      86c0ca081bcbcfa5245c8cfddbd72733.png

      5ee346e120f00a37d4637449e7e21239.png