next

django进阶

≡放荡痞女 提交于 2021-02-14 23:17:16
Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.execute(sql) data = cursor.fetchall() db.close() return data def GetSingle(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.execute(sql) data = cursor.fetchone() db.close() return data    django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。   PHP:activerecord   Java:Hibernate

Maven-插件build-helper-maven-plugin

流过昼夜 提交于 2021-02-14 23:14:06
  把原有项目添加到Maven管理时,总会出现很多莫名奇妙的问题,其中之一便是Maven默认的项目结构和自己的项目结构不一致,导致无法编译源代码,更不用说部署、运行项目了。   Java程序开发,一般使用Eclipse、MyEclipse等工具,其源码目录为src,这与Maven默认的src/main/java不同。因此,在没有额外配置的情况下,使用Maven命令无法完成代码的编译。   针对这种情况,codehaus提供了build-helper-maven-plugin插件来支持自定义的项目目录结构(相对于Maven默认目录结构来说)。 官网: http://www.mojohaus.org/build-helper-maven-plugin/ <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/build-helper-maven-plugin --> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> </dependency> Goals 概览 build-helper:add-source Add more

第七篇 Django-认证系统

被刻印的时光 ゝ 提交于 2021-02-14 22:00:59
Django-认证系统 阅读目录(Content) 1 Cookie 与 Session 概念 查看cookie 登陆应用 Django中操作Cookie 1.获取Cookie 2.设置Cookie 3.删除Cookie              Django中操作Session 1、 基本操作 2、 流程解析图 3、Django中的Session配置 4、CBV中加装饰器相关    Cookie 与 Session 概念 Cookie不属于http协议的范围,由于http协议无法保持状态,但实际情况,我们却又需要‘保持状态’,因此Cookie就是这样一个场景下诞生。 Cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了。 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它支持更多字节,并且他保存在服务器,有较高的安全性。这就是session 问题来了,基于http协议的无状态特征,服务器根本就不知道访问者是“谁”。那么上述cookie就起到桥接的作用 我们可以给每个客户端的cookie分配一个唯一的id,这样用户在访问的时候

Linux_Vi_命令

最后都变了- 提交于 2021-02-14 17:51:43
Linux Vi 命令 ************************************************************************* 在vi中使用命令的方法是:冒号+命令+回车,如:q 回车代表退出。 ************************************************************************* 进入vi的命令 vi filename //打开或新建文件,并将光标置于第一行首 vi +n filename //打开文件,并将光标置于第n行首 vi + filename //打开文件,并将光标置于最后一行首 vi +/pattern filename //打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename //在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename //打开多个文件,依次进行编辑 移动光标类命令 h //光标左移一个字符 l //光标右移一个字符 Backspace //光标左移一个字符 space //光标右移一个字符 j或Ctrl+n //光标下移一行 k或Ctrl+p //光标上移一行 Enter //光标下移一行 w或W //光标右移一个字至字首 b或B //光标左移一个字至字首 e或E /

【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise

流过昼夜 提交于 2021-02-14 15:53:16
Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱无章其实有些变换规律的图形(更加贴近自然),比如海水、地形、雾等 当然这里面的原理涉及分形几何等相关的知识 例如,2D柏林噪声可以生成 以及一些网上的总结: 还有一些其他的图 是不是看起来自然多了 那么今天,我们就来 领略一下随机技术带来的自然之美~ Chapter 4:Perlin Noise 柏林噪声有2个关键的特点: 第一,输入相同的3D点,总能返回相同的随机值 第二,简单快捷,使用一些hack的方法,达到快速近似的效果。 关于随机数: 许多人在他们的程序中使用“随机数产生器”,以使得物体的运动行为更加自然,或者用来生成纹理。随机数产生器在一些情况下很有用,比如用在模拟自然物体的地方,如地形,海水等。 自然物体通常是分形的,有各种各样的层次细节,比如山的轮廓,通过高度区分就有高山(mountain,高度变化大)、山丘(hill,高度变化适中)、巨石(高度变化小) 、石头(高度变化很小)等。另外,比如草地、海浪、跑动的蚂蚁、摇晃的树枝、风、大理石的花纹等等,这些都呈现出了或大或小的细节变化。Perlin噪声函数通过噪声函数来模拟这些自然景观。 要构造一个Perlin函数,首先需要一个

【Ray Tracing The Next Week 超详解】 光线追踪2-3

那年仲夏 提交于 2021-02-14 15:26:51
Preface 终于到了激动人心的纹理章节了 然鹅,看了下,并不激动 因为我们之前就接触过 当初有一个 attenuation 吗? 对了,这就是我们的rgb分量过滤器,我们画出的红色、蓝色、绿色等等,都是通过它来控制的 专业点的词语叫做rgb衰减比例,比如rtvec(1.,0.,0.),最后呈现出来的是红色,因为r保留了100% 它是怎么控制的呢,我们来回顾一下这个过程 首先,我们创建一个材质球 后面那个rtvec(0.4,0.2,0.1)就是衰减比例(衰减到原来的百分之。。) 之后 进入数据成员中, 之后主函数调用lerp的时候 info.materialp->scatter(sight, info, attenuation, scattered)) 球体的材质调用scatter函数 即: 没有丝毫改动地有数据成员传递到了attenuation 中 然后用attenuation 做乘法进行rgb衰减,递归就不用说了吧,最后递归到深处为黑色,不然为背景色 为什么要在前言将这个东东,因为 attenuation 所控制形成的物体表面颜色就是最简单的纹理 说白了这章比较简单,因为下一章是这本书的另外一个高难度章节(分别分布于第二章和第四章) 所以,中间第三章来点简单好玩的,过渡一下 先看效果 Chapter 3:Solid Textures 废话不多说,先写一个纹理类 ///

C# 后台按键 视频播放器 全屏后无法 触发

我是研究僧i 提交于 2021-02-14 14:11:01
第一种 ( 全屏不可触发 ) protected override bool ProcessCmdKey( ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { int WM_KEYDOWN = 256 ; int WM_SYSKEYDOWN = 260 ; if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN) { switch (keyData) { case Keys.Escape: DialogResult dr = MessageBox.Show( " 确定要退出吗? " , " 退出系统 " , MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) // 如果点击“确定”按钮 { FormPassword form = new FormPassword(); form.StartPosition = FormStartPosition.CenterScreen; form.ShowDialog(); // this.Close(); // esc关闭窗体 // System.Environment.Exit(0); } break ; } } return false

leecode牛客没有的字节面试算法题,难度中等,

一曲冷凌霜 提交于 2021-02-14 11:41:40
前两天面试字节,出了一道算法题,当时时间原因加上紧张,没做出来,后来准备别的面试就方了,这两天闲了给写出来了,本想传至leecode一起分享,好像传不上去: 题目是这样的,给定一个链表,将其后n位实现反转,若n>=链表长度,则将链表进行全部反转,处理好程序过程中出现的异常,保证时间空间复杂度; 废话不多说直接举例: example 如下: 输入:1->2->3->4->5->6->end; 当n=1时,输出 1->2->3->4->5->6->end; 当n=2时,输出 1->2->3->4->6->5->end; 当n=3时,输出 1->2->3->6->5->4->end; 当n=10时,输出 6->5->4->3->2->1->end; 链表是我自己定义的,童鞋们可以自己定义哈: static class Node{ public int i ; public Node next ; @Override public String toString () { String rst= "" ; Node temp= this; while (temp!= null ){ rst+=temp. i + "->" ; temp=temp. next ; if (temp== null ){ rst+= "end" ; } } return rst ; } public Node (

【链表问题】打卡4:如何优雅着反转单链表

寵の児 提交于 2021-02-14 10:02:11
前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获。每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢 【题目描述】 反转单链表。例如链表为: 1->2->3->4 反转后为 4->3->2->1 【要求】 如果链表的长度为 N, 时间复杂度达到 O(N), 额外空间复杂度达到 O(1) 【难度】 士:★☆☆☆ 【解答】 方法1 这道题还是挺简单的,当我们在反转一个节点的时候,把一个节点的后驱改为指向它前驱就可以了。这里需要注意的点就是,当你把当前节点的后驱指向前驱的时候,这个时候链表会被截断,也就是说后面的节点和当前节点分开了,所以我们需要一个变量来保存当前节点的后驱,以访丢失。 具体代码如下: 代码如下 //节点 class Node{ public int value; public Node next; public Node(int data) { this.value = data; } } //反转单链表 public static Node reverseList(Node head) { Node next = null;//指向当前节点的后驱 Node pre = null;//指向当前节点的前驱 while (head != null) { next = head.next; //当前节点的后驱指向前驱

前端面试题整理—Node篇

三世轮回 提交于 2021-02-14 09:35:02
1、node有哪些特征,与其他服务器端对比   特征:单线程、事件驱动、非阻塞I/O   node 无法直接渲染静态页面,提供静态服务   node 没有根目录的概念   node 必须通过路由程序指定文件才能渲染文件   node 比其他服务端性能更好,速度更快 2、CommonJS中require/exports和ES6中import/export区别   CommonJS模块的重要特性是加载时执行,及脚本代码在require的时候,就会全部执行。一旦出现某个模块被“循环加载”就只输出已经执行的部分,还没有执行的部分是不输出的   ES6模块是动态引用,如果使用import从一个模块加载变量,那些变量不会缓存,而是成为一个指向被加载模块的引用,impor/export最终都是编译为require/exports来执行的 3、谈谈对node.js npm webpack的理解   ebpack能够把.vue后缀名的文件打包成浏览器能够识别的js,而这个.vue文件装换需要打包器vue-loader;这个vue-loader打包器是可以从npm上面下载,npm下载文件之后;webpack打包文件的时需要node环境去运行 4、使用npm有哪些好处?   通过NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号,可以通过package.json文件来管理项目信息