董俊俊 的个人动态
  • 董俊俊 回答了问题
    4个月前

    包含元组的列表转 JSON,更好的做法?

    result = {}
    result['categories'] = []
    for year, month, level, number in rs:
        if level not in result:
            result[level] = [0, 0, 0, 0]
            result[level][month-1] = number
        category = '{0}-{1}'.format(year, month)
        if category not in result['categories']:
            result['categories'].append(category)
  • 董俊俊 回答了问题
    4个月前

    python list包含元组,怎么去掉元组,返回list

    a = [('133626',), ('133627',), ('133690',)]
    a = [_[0] for _ in a]
  • 董俊俊 回答了问题
    4个月前

    python list包含元组,怎么去掉元组,返回list

    如果格式是固定的一行的话可以用下面的操作:😃

    a = [('133626',), ('133627',), ('133690',)]
    a = [i[0] for i in a]
  • 董俊俊 回答了问题
    4个月前

    数组去重,数组的值是对象。

    const arr = list.filter((item, index) => list.map(i => i.id).indexOf(item.id) === index)
  • 董俊俊 回答了问题
    4个月前

    Mysql数据库有70多个G,在用删除记录语句后总提示1025错误信息,说什么被锁定,请问该如何解决?

    可以这样看锁冲突:
    1.执行你的删除语句;
    2.查询information_schema.innodb_lock_wait,information_schema.innodb_locks,或通过show engine innodb statusG,就可以看到锁冲突以及锁等待情况。

  • 董俊俊 回答了问题
    4个月前

    java端js端php端可以互相解密加密的DES +base64 +ECB 的算法实现

    使用openssl_decrypt()函数
    第一个参数 加密内容
    第二个参数 加密方法,按你要求要填DES-ECB
    第三个参数 加密密钥key
    第四个参数 选项 OPENSSL_RAW_DATA
    第五个参数 加密向量iv

  • 董俊俊 回答了问题
    4个月前

    微信公众号静默获取无法获得新用户的unionid

    只有已关注用户才可以静默的情况下 openid 换 unionid。

    未关注用户只能通过用户主动授权的方式拿 unionid。当然了,对于虽未关注,但已经授权过的用户,一段时间内不用用户再手动点一下“授权”按钮了,进到授权页后微信自己会跳。

  • 董俊俊 回答了问题
    4个月前

    Laravel中User Model 里面的 sendPasswordResetNotification ( ) 在什么时候调用?

    我跟着线索找了一下,不知道对不对,sendResetLinkEmail 这个方法定义在 SendsPasswordResetEmails 这个 trait 中。

    public function sendResetLinkEmail(Request $request)
        {
            $response = $this->broker()->sendResetLink(
                $request->only('email')
            );
        }

    在执行的过程中会调用 sendResetLink() 这个方法,找到在 Illuminate/Auth/Passwords/PasswordBroker.php 中的定义,执行过程中会又会调用:

            $user->sendPasswordResetNotification(
                $this->tokens->create($user)
            );

    看看 $this->tokens 是怎么构造的:

    public function __construct(TokenRepositoryInterface $tokens,
                                    UserProvider $users)
        {
            $this->users = $users;
            $this->tokens = $tokens;
        }

    可以看到传入了两个参数,其中和 token 有关的参数是 TokenRepositoryInterface $tokens,token 是通过 TokenRepositoryInterface 这个接口产生的,转而寻找实现这个接口的类,然后找到 Illuminate/Auth/Passwords/DatabaseTokenRepository.php,其中就有 create() 这个方法:

     public function create(CanResetPasswordContract $user)
        {
            $email = $user->getEmailForPasswordReset();
    
            $this->deleteExisting($user);
    
            $token = $this->createNewToken();
    
            $this->getTable()->insert($this->getPayload($email, $token));
    
            return $token;
        }

    就是在这里完成了 token 的生成,同时写入数据表,返回这个 token,既然知道这个 token 是怎么来的了,反过来就是 token 出现在邮件中的过程了。
    第一次用 markdown,排版效果可能不理想,望谅解。

  • 董俊俊 回答了问题
    4个月前

    Java如何抓取ajax生成的页面

    如果说是要抓js生成的页面,貌似没有这方面的类库(本人去年在用程序模拟新浪微博登录的时候找过,没找到。。。)
    不过有可以解析javascript语句的java类库

    你可以先对页面进行分析,然后确定哪些数据是必须的,即使是ajax动态加载的,数据也是可以获取到的,只是展现形式不同罢了

  • 董俊俊 回答了问题
    4个月前

    Java如何抓取ajax生成的页面

    可以直接用浏览器查看ajax请求的URL,直接down这个就好了

  • 董俊俊 回答了问题
    4个月前

    Java如何抓取ajax生成的页面

    这个我当时遇到的一个情况是,ajax传回来的是一大堆json,然后前端js动态解析这些出来,我的目的是获取解析之后的数据,这样比较直观。
    我用的selenium webdriver,自动化测试的一个东西。

  • 董俊俊 回答了问题
    4个月前

    如何用 Python 快速插入数据到数据库中?

    后台默默执行吧,这个确实没有什么好办法,如果单台数据库的话,并发的w请求取决于db,所以是有限的.建议开启写个脚本后台去执行.

  • 董俊俊 回答了问题
    4个月前

    如何用 Python 快速插入数据到数据库中?

    1) mysql用集群而不要用单机版
    2)试着修改mysql的存储引擎,当然这影响数据恢复的策略
    3)表是否设置了主键或索引影响插入速度
    4)采用数据二次提交的方式,也就是关闭默认的autocommit,设置为0,然后每插入10000条再commit一下,采用这种方式起码每秒处理1w条的性能还是有的
    5) 换硬盘,上raid或SSD,这个严重影响数据写入速度
    6) 还可以试试用load data的方式,适合将现有的文本数据导入

  • 董俊俊 回答了问题
    4个月前

    nginx 动态读取多文件夹下index.html

    server {
      listen 80;
      root /app;
      location / {
        index index.html;
      }
    }
  • 董俊俊 回答了问题
    4个月前

    tp 使用路由访问时总是不成功

    resume/:id 你这不后面还需要一个参数嘛,如果参数是可选的,那就改成 resume/[:id] 。

  • 董俊俊 回答了问题
    4个月前

    vue请求本地后台接口提示跨域怎么办?

    http://localhost 和 http://localhost:8080 这是不同域。

    协议、主机、端口,三者全都一样才叫同域。有一个不一样就是跨域。

    不知道你这个后台是啥写的,找一下对应语言或框架支持 CORS 的写法吧。

    看报错信息应该是处理 OPTIONS 请求时没能正确返回 Access-Control-Allow-Origin 这个响应头导致的。

    一般来说返回通配符 * 可以。但如果你这个接口还会接收 Cookie,那就必须返回请求者所处的域(对于你这里而言就是 http://localhost),而不能用 *

    你说的昨天正常今天不正常,看一下是不是今天多了 Cookie?

  • 董俊俊 回答了问题
    4个月前

    sequelize的findAll如何用?

    传空不就相当于没 where 条件么,可不就返回所有结果了么……

    你可以给 myId 强行赋一个数据库不会存在的值,比如 0 啥的, { where: { id: myId || 0 } }


    补充回答:

    我只是给个侵入性最小的方案而已,基本没啥改动、还能保留了返回结果的强类型。

    如果从工程角度出发的话确实 @糟老头 是对的,应该做一层封装。

  • 董俊俊 回答了问题
    4个月前

    Datatables ajax返回的数据顺序与表格中的数据顺序不一致

    解决了吗?我今天遇到一模一样的问题..
    更新:额.加入bSort:false就可以了

  • 董俊俊 回答了问题
    4个月前

    Golang 不确定传参

    类似的问题我回答过好几次了,这个问题真的是经常有人问啊。

    对于 json 格式数据的解析,如果其中的某个成员结构不确定,我总结一般有几种方式处理。

    第一种,最容易想到的就是,将那个不确定的成员用 map[string]interface{} 替代。其他人的回答都提到了,怎么操作就不赘述了。但问题是,这种方式太坑,每次都要做类型断言,还要检查一次是否 ok,真的是太坑。

    第二种,既然 map[string]interface{} 的方式太坑,那如果要是能用结构体就好了,虽然其中某个成员的结构不确定,但如果共性字段比较多,比如都是与人相关,那肯定都有名字,年龄之类的字段,但如果是教师和学生,就会有一些不同的字段,把所有的不同字段都包含进来即可。但如果不同字段太多,那也不是很方便。

    第三种,终极解决方案,如果能先解析第一层的结构,再根据第一层的结果,确定第二层的结构,那就方便多了。不确定的成员依然用 map[string]interface{} 表示,确定结构后,再将 map[string]interface{} 解析为具体的某个结构。结构体使用起来就方便很多了。

    问题最终就变成了如何将 map[string]interface{} 转化为 struct,这个过程必然会用到反射,可以自己实现。但其他人早造就想到了,一个第三方库,地址:https://github.com/mitchellh/... 。

    之前写过一篇文章,和这个问题相关,建议去看看,Go 中实例演示 json 的 map 和 struct 便捷处理转化,里面简单介绍了 mapstructure 的使用。

  • 董俊俊 回答了问题
    4个月前

    laravel的blade模板如何生成静态化页面?

    解析开始是由__toString()触发的

    解析过程中是用ob_start实现的,使用了很多次ob_start

    你可以看下Illuminate\View\View这个类

    也可以调用Illuminate\View\View__toString()方法来生成静态页面,如下:

    <?php
    $htmlStrings = view('viewPath')->__toString();

    对于laravel 5(4应该也差不多)

最近访客
  • 小花花
    小花花 1个月前