摘要: git &github 快速入门 本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 为什么要用版本控制? 假设你在的公司要上线一个新功能,你们开发团队为实现这个新功能 阅读全文
posted @ 2018-03-07 18:57 EagleSour 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-03-06 23:51 EagleSour 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的, 阅读全文
posted @ 2018-03-04 12:53 EagleSour 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-03-02 17:47 EagleSour 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 【算法】实现栈和队列 目录 栈(stack) 用数组实现栈 用链表实现栈 队列(queue) 通过链表实现队列 通过循环数组实现队列 判断循环数组的满状态和空状态 正文 回到顶部 栈(stack) 栈(stack)是一种后进先出(LIFO)的集合类型, 即后来添加的数据会先被删除 可以将其类比于下面 阅读全文
posted @ 2018-03-02 16:16 EagleSour 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一、算法 1. 什么是算法 算法就是为了解决某一个问题而采取的具体有效的操作步骤 算法的复杂度,表示代码的运行效率,用一个大写的O加括号来表示,比如O(1),O(n) 认为算法的复杂度是渐进的,即对于一个大小为n的输入,如果他的运算时间为n3+5n+9,那么他的渐进时间复杂度是n3 mark:我们可 阅读全文
posted @ 2018-03-01 00:12 EagleSour 阅读(551) 评论(0) 推荐(0) 编辑
摘要: ss 阅读全文
posted @ 2018-02-28 02:12 EagleSour 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 主机管理+堡垒机系统开发 本节内容 需求讨论 构架设计 表结构设计 程序开发 1.需求讨论 实现对用户的权限管理,能访问哪些机器,在被访问的机器上有哪些权限 实现可以通过web页面对指定主机列表 进行 批量发布命令、文件 实现对用户操作进行纪录 2.架构设计 3. 表结构设计 参考 http://w 阅读全文
posted @ 2018-02-26 23:42 EagleSour 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 自定义的用户认证在django的官方网站中有详细的说明: https://docs.djangoproject.com/en/2.0/topics/auth/customizing/ 第一步:首先需要在models.py中需要定义两部分 1. 用于认证的数据表字段信息: 这里需要注意的是,creat 阅读全文
posted @ 2018-02-26 00:38 EagleSour 阅读(969) 评论(1) 推荐(0) 编辑
摘要: 接着搞起烂摊子。 前面我们简单的实现了全篇只读限制,但是存在安全隐患。在解决此隐患之前,我们需要先之道如何实现自定义后台表单的验证。 1. 原生admin中自定义表单验证 说起表单验证,在前面提过Form和MoldeForm的相关使用,这里我们要通过另一个方法进行处理。 我们通过使用clean()方 阅读全文
posted @ 2017-12-24 17:56 EagleSour 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 前面完成了主要的增删改查功能,后面将要进行的就是一些细节及安全方面的操作。 1.字段只读限制设定 1.1原admin只读体验 前面写了那么多的Django配置,配置流程应该是轻车熟路了,后面不在赘述具体配置的具体位置。 配置设置: 显示效果如下: 没修改前: 修改后: 1.2 编写只读功能 1.2. 阅读全文
posted @ 2017-12-24 17:48 EagleSour 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 现在该来添加前面提到的Action功能了,强大的它能干什么,先来体验一下原生admin中的效果。 1. 原生admin体验 默认的删除功能是可以进行批量删除的! 可以在后台进行自定义功能 在CRM应用目录下的admin.py中添加: 效果图: 跳转到指定的页面: 2. 重写action 2.1基类中 阅读全文
posted @ 2017-12-24 17:42 EagleSour 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 添加、修改页面都已经搞定,就差删除功能啦!删除这里就比较麻烦了,麻烦在那些表之间的关系。 1. 添加删除功能 1.1 删除页面路由 为用户的良好体验,我们新增加一个删除显示页面,路由: 1.2 添加删除页面模板 在templates/king_admin目录下新建table_object_delet 阅读全文
posted @ 2017-12-24 17:31 EagleSour 阅读(962) 评论(0) 推荐(2) 编辑
摘要: 添加功能在前面的编辑基础上继承,相对来说就简单太多,没有太多的修改。 1. 添加–创建页面 1.1 创建页面路由 1.2 创建页面模板文件 在templates/king_admin/目录下创建模板文件:table_object_add.html,并继承编辑文件内容: 上面的块内容包含的是返回键按钮 阅读全文
posted @ 2017-12-24 17:20 EagleSour 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 功能是永远加不完的!重头戏的Action放在后面作为压轴,接下来该添加三级页面啦! 1. 添加编辑页面轮廓 有的朋友可能会问:为何直接写编辑页面而没有写添加页面?那是因为二者是相互继承的关系,个人觉得先写编辑比较好,然后添加继承编辑页面,改动基本上后台数据的更新与存储的问题。 1.1. 原生admi 阅读全文
posted @ 2017-12-24 17:16 EagleSour 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 简单基础的功能添加是比较漫长的道路,前面添加了分页和过滤功能,接下来添加的仍然会是一些琐碎而又常用的功能。 1. 添加页面统计功能 这个功能实在是太简单了,只需要一行代码就能够搞定,当然是在这使用Django的情况,其他框架虽然没有使用过,但应该一行代码也能搞定,可以通过直接数据库查询将统计结果返回 阅读全文
posted @ 2017-12-24 13:50 EagleSour 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章中,我们仅仅是展示了最基础的表格字段的内容,这篇文章我们来添加过滤功能和分页功能! 1. 添加分页功能 1.1. 添加分页字段 在king_admin.py文件中添加分页字段,表示每页显示多少内容,如下: 如果我们需要修改每页要显示的内容数量时,同样是在king_admin中,只需要在自定 阅读全文
posted @ 2017-12-24 13:30 EagleSour 阅读(781) 评论(0) 推荐(0) 编辑
摘要: 前面我们已经将首页的雏形搞定,关于修饰部分,后面直接套用模板即可!接下来,我们需要做的是添加二级页面,也就是说,点击‘客户表’进入到独立的显示页面可以进行独立的操作。 1. 添加二级页面 1.1. 构造二级页面的路由 1.1.1. 原生admin二级页面路由分析 先看图: 从图中,我们可以知道该ur 阅读全文
posted @ 2017-12-23 21:39 EagleSour 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 1. 构造Home首页 CRM系统是一个相对较复杂的软件,其中重构admin是最为繁琐的过程,这个解决掉之后其他的就会很轻松!路漫漫其修远兮,重写admin也是一个漫长的过程。 接下来是重写admin的过程: 1.1. 创建应用 将新的admin作为一个应用,便于扩展和移植。根目录下,创建应用,并命 阅读全文
posted @ 2017-12-23 21:14 EagleSour 阅读(1500) 评论(0) 推荐(0) 编辑
摘要: Django的admin已经为我们做好了,很完善的后台管理体系,但页面过于丑陋,自定义的能力还是有局限性的。特此,重写admin后台管理体系,同时也是考虑到其他轻量级框架并没有类似Django这么完善的admin!写成独立的app,便宜更好的进行复用迁移。 1. 创建工程和项目 命名根据自己的喜好吧 阅读全文
posted @ 2017-12-23 20:32 EagleSour 阅读(6039) 评论(3) 推荐(2) 编辑
摘要: SQLAlchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库A 阅读全文
posted @ 2017-12-06 18:23 EagleSour 阅读(639) 评论(0) 推荐(0) 编辑
摘要: Redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/rem 阅读全文
posted @ 2017-12-06 18:22 EagleSour 阅读(220) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信, 阅读全文
posted @ 2017-12-06 18:22 EagleSour 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 九、信号 Django中提供了“信号调度”,用于在框架执行操作时解耦。通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。 1、Django内置信号 对于Django内置的信号,仅需注册指定信号,当程序执行相应操作时,自动触发注册函数: from django.core.sign 阅读全文
posted @ 2017-12-05 19:27 EagleSour 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 八、序列化 关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。 1、serializers 2、json.dumps 由于json.dumps时无法处理datetime日期,所以可以通过自定义处理器来做扩展,如: 阅读全文
posted @ 2017-12-05 19:24 EagleSour 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一、分页 一、Django内置分页 Django在通过url传递参数的时候,参数之间是通过'&'连接在一起的,如:http://127.0.0.1:8000/a/paginat?p=17&s=1111&t=2222, 共传递了三个参数p, s, t。 后台获取的时候通过request.GET.get 阅读全文
posted @ 2017-12-05 19:20 EagleSour 阅读(299) 评论(0) 推荐(0) 编辑
摘要: django中的session配置、使用相当简单,但是理解起来是有误区的: 1. session的目的是唯一标识一个会话,因此sessionid(django默认的SESSION_COOKIE_NAME)只需要一个就可以了。 2. 存储的时候主要有三个字段:session_key, session_ 阅读全文
posted @ 2017-12-05 19:19 EagleSour 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 一、Cookie 1、获取Cookie: 2、设置Cookie: 由于cookie保存在客户端的电脑上,所以,JavaScript和jquery也可以操作cookie。 阅读全文
posted @ 2017-12-05 19:17 EagleSour 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 一、 跨站请求伪造 一、简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。 全局: 中间件 django.middleware.csr 阅读全文
posted @ 2017-12-05 19:14 EagleSour 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 1. Django的时区配置在setings.py中,默认配置如下: 阅读全文
posted @ 2017-11-27 23:47 EagleSour 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Django 缓存系统 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Red 阅读全文
posted @ 2017-11-27 17:00 EagleSour 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 一、Form功能 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 django中的Form一般有两种功能: 输入html 验证用户输入 1 #!/usr/bin/env python 2 # - 阅读全文
posted @ 2017-11-23 17:35 EagleSour 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 1. Model __str__() A Python “magic method” that returns a string representation of any object. This is what Python and Django will use whenever a mode 阅读全文
posted @ 2017-11-18 23:51 EagleSour 阅读(968) 评论(0) 推荐(0) 编辑
摘要: Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。 一、基本配置 1.1、创建django程序 终端命令:django-admin startproj 阅读全文
posted @ 2017-11-18 14:37 EagleSour 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上。 1、传统的Web应用 一个简单操作需要重新加载全局数据 2、AJAX AJAX,Asynchronous JavaScript and X 阅读全文
posted @ 2017-11-16 13:03 EagleSour 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 本节内容: 面向对象高级语法部分异常处理 经典类vs新式类 静态方法、类方法、属性方法 类的特殊方法 反射 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 经典类vs新式类 静态方法、类方法、属性方法 类的特殊方法 反射 一、类定义: 定义: class <类名>: <语句> 类实例 阅读全文
posted @ 2017-09-11 17:18 EagleSour 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 本节内容: Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递。 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外 阅读全文
posted @ 2017-09-11 16:56 EagleSour 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 本节内容 引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上 阅读全文
posted @ 2017-09-11 16:45 EagleSour 阅读(296) 评论(0) 推荐(0) 编辑
摘要: Python之路,Day9, 进程、线程、协程篇 本节内容 操作系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式。 手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计 阅读全文
posted @ 2017-09-11 16:15 EagleSour 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装、继承、多态 类、方法、 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬 阅读全文
posted @ 2017-08-16 22:02 EagleSour 阅读(275) 评论(0) 推荐(0) 编辑