源码

Flask目录

被刻印的时光 ゝ 提交于 2019-12-06 06:42:30
Flask 1Flask框架引子 2Flask的三剑客 3Flask的配置文件 4Flask的路由和cbv 5Flask的严格模式 6Flask的正则使用 7Flask的html渲染 8Flask的Request,Response的定制 9Flask的闪现 10Flask的请求拓展 11Flask的中间件 12Flask的session 13Flask的g对象 14Flask的Form 15Flask的信号 16Flask请求上下文源码解析 17Flask蓝图 18Flask自定制命令 19Flask的model和orm 20Flask的orm操作 21Flask的多APP应用 22Flask的sqlalchemy插件 23Flask实现迁移 来源: https://www.cnblogs.com/suren-apan/p/11966187.html

16Flask请求上下文源码解析

拥有回忆 提交于 2019-12-06 06:42:24
Flask请求上下文源码解析 from flask import Flask,request app=Flask(__name__) @app.route("/") def index(): print(request.form) return "1" if __name__ == '__main__': #self,是app,app(),--->Flask对象,Flask的__call__ app.__call__ app.run() ''' 1 app.__call__ 2 wsgi_app(environ, start_response) 2.1 ctx = self.request_context(environ) 2.1.1 return RequestContext(self, environ) 这里的self是app,environ请求相关 2.1.2 return RequestContext(self, environ) 得到了RequestContext的对象,而且有request属性 2.2 2.1中的ctx就是RequestContext的对象 2.3 ctx.push()执行这个,就是RequestContext的对象的push方法 2.3.1 #执行这个,self-->ctx _request_ctx_stack.push(self) 2.3.1.1

React源码 ReactDOM.render

丶灬走出姿态 提交于 2019-12-06 06:41:38
在 react 当中,主要创建更新的有三种方式 1、ReactDOM.render || hydrate 这两个api都是要把这个应用第一次渲染到我们页面上面,展现出来整个应用的样子的过程,这就是初始渲染 2、setState 3、forceUpdate ReactDOM.render 需要做哪些事情呢? 1、创建 ReactRoot 2、创建 FiberRoot 和 RootFiber 3、创建更新 import React, { Component } from 'react' import './App.css' class List extends Component { state = { a: 1, b: 2, c: 3, } handleClick = () => { this.setState(oldState => { const { a, b, c } = oldState return { a: a * a, b: b * b, c: c * c, } }) } render() { const { a, b, c } = this.state return [ <span key="a">{a}</span>, <span key="b">{b}</span>, <span key="c">{c}</span>, <button key="button"

LAMP源码编译安装

て烟熏妆下的殇ゞ 提交于 2019-12-06 06:31:07
php加速器 XCache 快速而且稳定的PHP opcode缓存,经过严格测试且被大量用于生产环境。 项目地址:http://xcache.lighttpd.net/,收录EPEL源 实现XCache源码编译 (1)官网下载xcache包,传到linux中并解压 [root@centos777~]#rz [root@centos777~]#tar xvf xcache-3.2.0.tar.gz (2)切换到解压的目录中开始编译安装开发环境包 [root@centos777xcache-3.2.0]#cd xcache-3.2.0/ [root@centos777xcache-3.2.0]#yum groupinstall "development tools" -y (3)查看编译INSTALL帮助文档 (4)安装php包及依赖的php-devel开发包 [root@centos777xcache-3.2.0]#yum install php -y [root@centos777xcache-3.2.0]#yum install php-devel -y (5)再执行一次phpize工具,生成configure [root@centos777xcache-3.2.0]#phpize Configuring for: PHP Api Version: 20100412 Zend

ubuntu源码方式安装nginx

限于喜欢 提交于 2019-12-06 06:15:56
###nginx源码包下载 wget http://nginx.org/download/nginx-1.11.4.tar.gz ###依赖包安装 sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev ###安装 tar xzvf nginx-1.11.4.tar.gz cd nginx-1.11.4&./configure&make&make install 启动 nginx默认被安装的目录是:/usr/local/nginx,默认的读取的nginx配置文件路径是:/usr/local/nginx/conf/nginx.conf sudo /usr/local/nginx/sbin/nginx 直接启动 测试 1.浏览器输入127.0.0.1,直接测试nginx开始页面 常用命令 nginx -v #查看nginx版本 nginx -s stop #快速停止nginx nginx -s quit #正常停止nginx 两者区别在于:快速停止服务时,worker进程与master进程在收到信号后会立即跳出循环,退出进程,而正常退出,首先会先关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。

Struts2源码分析--请求处理

↘锁芯ラ 提交于 2019-12-06 06:01:28
Struts2架构图 请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher主要通过AcionMapper来决定需要调用哪个Action。 ActionMapper取得了ActionMapping后,在Dispatcher的serviceAction方法里创建ActionProxy,ActionProxy创建ActionInvocation,然后ActionInvocation调用Interceptors,执行Action本身,创建Result并返回,当然,如果要在返回之前做些什么,可以实现PreResultListener。 Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。 ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java Servlet类的依赖。Struts2中它的默认实现类是DefaultActionMapper,ActionMapper很大的用处可以根据自己的需要来设计url格式,它自己也有Restful的实现,具体可以参考文档的docs\actionmapper.html。

React源码 memo Fragment StrictMode cloneElement createFactory

假如想象 提交于 2019-12-06 05:25:38
1、memo react 16.6 推出的 api ,他的用意是给 function component 也有 PureComponent 这样一个类似的功能,因为我们知道 PureComponent 提供了 class component 的组件类型,在 props 没有变化的情况下,他可以不重新渲染,对于 func component 因为他不存在一些生命周期之类的东西,所以他也没有继承这个说法,他之前都没有提供类似这样的功能,那么现在 React 提供了这么一个方法, import {REACT_MEMO_TYPE} from 'shared/ReactSymbols'; export default function memo<Props>( type: React$ElementType, compare?: (oldProps: Props, newProps: Props) => boolean, ) { return { $$typeof: REACT_MEMO_TYPE, type, compare: compare === undefined ? null : compare, }; } 就是通过 func component 作为参数传入进来,然后可以传第二个参数,是 oldProps 和 newProps 的一个对比方法,return true or

Centos7源码安装Apache和PHP

南笙酒味 提交于 2019-12-06 05:21:15
源码安装Apache 安装需要的依赖 yum -y install gcc autoconf automake make pcre pcre-devel openssl openssl-devel​#pcre是正则表达式库#openssl是安全通信的库 安装apr和apr-until #apr是Apache可移植运行时#apr-until是Apache可移植运行时实用程序库​wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gzwget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gztar xf apr-1.7.0.tar.gztar xf apr-util-1.6.1.tar.gzcd apr-1.7.0./configuremake && make installcd ..cd apr-util-1.6.1./configure --with-apr=/usr/local/apr/make && make installcd .. 安装 Apache 服务和模块 wget https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41

React源码 React.Children

假如想象 提交于 2019-12-06 05:06:46
children是什么意思呢?就是我们拿到组件内部的props的时候,有props.children这么一个属性,大部分情况下,我们直接把 props.children 渲染到 JSX 里面就可以了。很少有情况我们需要去操作这个 children 。 但是如果一旦你需要去操作这个 children 。我们推荐使用 React.children 的 api , 而不是直接去操作他。 虽然说我们大部分情况下拿到的 children 是合理的 react element 或者是一个数组,但是 React 有提供 api 去操作他,那么他一定是有一个合理的原因的。 打开 React.js 源码,找到 children Children: { map, forEach, count, toArray, only, } 这个 children 是个对象,这个对象里面有 5 个属性,这个 5 个属性看上去就跟我们数组的操作非常的像,前两个是最重要的,也就是 map 和 forEach ,就相当于一个数组的 map 和 forEach 方法,我们可以理解为意义是一样的,但是实际的操作跟数组的 map 和 forEach 会有一点的区别。 这里 map 是所有逻辑里面最复杂的一个。而 map 和 forEach 是差不多的,他们唯一的区别是一个有返回,一个没有返回,map 是通过我们传入一个方法之后

jdbc-mysql测试例子和源码详解

删除回忆录丶 提交于 2019-12-06 05:06:31
什么是JDBC JDBC是一套连接和操作数据库的标准、规范。通过提供 DriverManager 、 Connection 、 Statement 、 ResultSet 等接口将开发人员与数据库提供商隔离,开发人员只需要面对JDBC接口,无需关心怎么跟数据库交互。 几个重要的类 类名 作用 DriverManager 驱动管理器,用于注册驱动,是获取 Connection 对象的入口 Driver 数据库驱动,用于获取 Connection 对象 Connection 数据库连接,用于获取 Statement 对象、管理事务 Statement sql执行器,用于执行sql ResultSet 结果集,用于封装和操作查询结果 prepareCall 用于调用存储过程 使用中的注意事项 记得释放资源。另外, ResultSet 和 Statement 的关闭都不会导致 Connection 的关闭。 maven要引入oracle的驱动包,要把jar包安装在本地仓库或私服才行。 使用 PreparedStatement 而不是 Statement 。可以避免SQL注入,并且利用预编译的特点可以提高效率。 使用例子 需求 使用JDBC对mysql数据库的用户表进行增删改查。 工程环境 JDK:1.8 maven:3.6.1 IDE:sts4 mysql driver:8.0.15