python
文章平均质量分 56
机器猫666
喜欢python, 熟悉爬虫以及python web开发
展开
-
python 创建虚拟环境
1 配置好python环境变量, 打开命令行 输入python -m pip install virtualenv , 下载virtualenv这个包 2 选择一个或创建一个文件夹用来存放创建的虚拟环境 , 我以d盘下的D:\虚拟环境>为例 3 创建一个名为DjangoEnv的虚拟环境: 4 创建成功后, cd 进入虚拟环境下的Scripts文件夹 5 activat...原创 2018-08-05 16:15:13 · 534 阅读 · 0 评论 -
一个对撞指针问题
什么是对撞指针:我的理解就是两个指针分别从两端向中间靠拢题目是这样的:代码实现如下:思路:设置两个指针,分别指向这个数组最大right和最小下标left, 然后元素相加,如果相加结果等于target直接输出下标, 如果相加结果大于target,因为是升序的,那么就是right -= 1, 如果两个元素相加小于target,就left+=1。最后一点就是退出条件要注意一定不能是left ...原创 2019-04-14 16:34:09 · 327 阅读 · 0 评论 -
python实现堆排序
堆排序 基本思想:首先将待排序的记录序列构造成一个堆,此时,选出堆中的最大者即堆顶元素,然后将堆顶记录移除走,并且将剩余的记录再调整成堆,这样又找出了一个次大的元素,以此类推,直到堆中只有一个记录为止。时间复杂度:O(nlog2n), 这是最好,最坏和平均情况空间复杂度:O(1)适用场景:待排序的数据量比较大时代码实现:思路:先构建一个最大堆, 然后再从这个最大堆中依次取出最大的那...原创 2019-04-14 16:13:55 · 218 阅读 · 0 评论 -
python实现快速排序
快速排序总结:最好情况下的时间复杂度: O(nlog2n), 2是底数最坏情况下的时间复杂度:O(n2) ,2是幂次平均情况下的时间复杂度:O(nlog2n),,2是底数空间复杂度:O(log2n)~O(n)快速排序适用场景:数组基本有序, 数组比较大快速排序基本思想:通过一趟排序,把数据分为两部分,其中一部分的数据比另一部分的数据都要小,然后按照这种方法对每一部分进行快速排序,整...原创 2019-04-14 15:38:02 · 189 阅读 · 0 评论 -
利用正则表达式, xpath, Beautifulsoup来解析网页
1 使用正则表达式的时候需要导入re模块,这个是python自带的模块,不用下载1.1正则表达式有许多常用的规则 这里要注意贪婪匹配和非贪婪匹配以及反斜杠转义的问题 1.2 匹配网页的时候有时候要考虑到换行和大小写的问题 遇到匹配换行时要使用修饰符re.S,遇到忽略大小写时需要使用re.I1.3 re.findall()方法,源码def findall(pattern, ...原创 2018-08-18 23:02:13 · 2029 阅读 · 0 评论 -
django写博客第九章
1 Django自定义管理器 2 为什么要使用它呢? 在Django中,我们有些时候使用Django自带的ORM语句无法达到操作数据库的效果,这时,我们可以自定义一个管理器来进行数据库的操作。从总体上来说,就是重写管理器的方法和在管理器内部增加自定义方法 3 自定义方法 3.1model 类: 3.2数据库表: 3.3 如何得到“年份-月份-文章归档”,如下图所示: 3....原创 2018-08-08 22:22:22 · 137 阅读 · 0 评论 -
写博客第十章:注册,注销,登陆
博客·最基本的就是注册 登录 和注销了1 注销: 在 views.py中书写如下的代码from django.contrib.auth import logout# 注销#logger是我定义好的一个日志器def do_logout(request): try: logout(request) except Exception as e: ...原创 2018-08-13 00:02:40 · 487 阅读 · 0 评论 -
django自定义过滤器
1 django 内置了许多过滤器, 例如date等,但是有些时候这些内置的过滤器无法满足我们的需求,就需要自定义一个过滤器 2 那我们如何自定义一个过滤器呢?? 3 把日期中的月份变成大写3.1 在app目录下建立templatetags/在此目录下建立空文件_init_.py和myfilter.py 3.2 .在myfilter.py编辑from django import ...原创 2018-08-12 20:28:31 · 707 阅读 · 0 评论 -
django写博客第八章
1 分页器的原理和使用 2 Django自身提供了一些类来实现管理分页,数据被分在不同的页面中,并带有“上一页/下一页”标签。这个类叫做Pagination,其定义位于 django/core/paginator.py 中。 3 源码分析class Paginator: def __init__(self, object_list, per_page, orphans=0, ...原创 2018-08-07 22:43:57 · 425 阅读 · 0 评论 -
django写博客第七章
1 这一章我主要讲一下模板的的设计和应用 2 总的原则:一些公用的部分可以抽离出来当做公共模板base.html 一些可变的部分则继承base.html,然后利用block ,include 的方法进行扩展 3 接下来我们来扩展这个这个模板 比如我想在中间增加广告:# 在base.html中引入广告的html:{% block left_c...原创 2018-08-07 18:17:04 · 166 阅读 · 0 评论 -
django写博客第六章
1 这一章主要介绍富文本编辑器文件的上传 步骤: (one) 配置上传的文件路径 1 在根目录下面创建一个uploads的文件夹 2 在settings.py中设置MEDIA_URL 和MEDIA_ROOTMEDIA_URL = '/uploads/'MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')...原创 2018-08-06 23:33:44 · 151 阅读 · 0 评论 -
django写博客第五章
1 这一章主要是介绍如何增加富文本编辑器的功能 2 实现方法很多,我主要讲讲自己的方法,这个实在写博文时增加这个富文本功能: 2.1 下载kindeditor 下载地址: http://kindeditor.net/down.php,下载后解压,放在static目录下的js目录 2.2 定义ModelAdmin的媒体文件class ArticleAdmin(admin.ModelAd...原创 2018-08-06 21:43:31 · 182 阅读 · 0 评论 -
django写博客第四章
1 这一章主要是介绍admin的使用 2 admin是django的一个后台管理系统,功能强大,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行 3 如何配置使用admin 3.1 首先应该创建一个超级用户, 供登陆使用python manage.py createsuperuser如果是通过pycharm创建的话就不用这样写,点击tools->...原创 2018-08-06 18:38:09 · 151 阅读 · 0 评论 -
django写博客第三章
1 这一章主要任务是进行数据库的设计 2 设计一个博客需要什么数据呢? 其实仔细想想,你会想到博客肯定有用户,就需要用户表, 博客发博文,就需要文章表, 文章有分类,就需要分类表, 文章有标签就需要标签表,写的文章可以让别人去评论,就需要评论表, 博客最后应该有友情链接,就需要友情链接表,当然可能还有一些广告,就需要广告表,对吧。分析清楚了这些表之后,肯定还要分析数据表之间的对应关系,一篇文章...原创 2018-08-06 13:11:04 · 173 阅读 · 0 评论 -
django写博客第二章
**1 这一章我主要写了两个知识点,配置日志器的使用和调用settings.py的配置信息作为全局使用 2我们为什么会使用日志器?** 2.1原因:日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常。在生产环境下有很大的用处。 2.2在django中我们如何使用这个日志器呢? 首先就是得有一个自己定义的日志器,至于怎么定义的,一些细节我也不...原创 2018-08-06 00:35:40 · 163 阅读 · 0 评论 -
利用pycharm 创建django项目时出现的一些问题·
1 打开pycharm 2018版本, 新建一个django项目, 写好项目名称:blog, 应用名称:app1, 模板为templates 如图所示 2 创建完之后生成的目录结构如图所示: 3 本来以为成功了, 但是它有提示说这个django项目没有编译器,当时我不是在创建的时候就已经指定了吗,怎么突然就说没有指定编译器呢,当时我也没太在意,没指定那我再打开 files–>...原创 2018-08-05 17:40:51 · 14858 阅读 · 1 评论 -
滑动窗口
这道题主要用到思路是: 滑动窗口什么是滑动窗口?其实就是一个队列,比如例题中的abcabcbb,进入这个队列(窗口)为abc满足题目要求,当再进入a,队列变成了abca,这时候不满足要求,所以,我们要移动这个队列!如何移动?我们只要把队列的左边的元素移出就行了,直到满足题目要求!一直维持这样的队列,找出队列出现最长的长度时候,求出解!时间复杂度:O(n)O(n)O(n)我刚开始也是...原创 2019-04-14 17:56:17 · 391 阅读 · 0 评论