Fork me on GitHub

随笔分类 -  Python

摘要:菜单包括菜单列表,菜单列表不仅将菜单列出来,而且将每个菜单下的权限也列出来、菜单的添加、删除、修改。 urls.py 1、后台处理菜单列表页 将每一个菜单及其权限取出来,组成相应的数据结构 { 64: { 'id': 64, 'name': 'rbac:multi_permissions', 'me 阅读全文
posted @ 2019-06-01 18:57 iveBoy 阅读(800) 评论(0) 推荐(0)
摘要:rbac是基于角色的权限设计,一共包含六张表,具体的表设计如下: 其中用户表和角色表是多对多的关系、角色表和权限表是多对多的关系。另外权限表关联菜单,这样某一个权限url挂载某一个菜单下,并且权限表关联自身,这样比如增加、删除、修改的权限url又可以挂在某一个权限url下面。 阅读全文
posted @ 2019-06-01 08:11 iveBoy 阅读(512) 评论(0) 推荐(0)
摘要:为了与stark组件分离,形成独立的模块,所以rbac数据表的操作需要单独进行操作,对角色表的操作。 urls.py views.py role_list.html {% extends 'layout.html' %} {% block css %} {% endblock %} {% block 阅读全文
posted @ 2019-06-01 08:10 iveBoy 阅读(393) 评论(0) 推荐(0)
摘要:一、环境搭建 由于条件有限,一台虚拟机,一台笔记本。 在虚拟机上装上mongodb数据库、redis数据库、redis_scrapy、pymongo、scrapyd 在本地电脑上装上monodb数据库、redis数据库、redis_scrapy、pymongo、scrapyd-clientl、scr 阅读全文
posted @ 2019-05-30 18:17 iveBoy 阅读(3921) 评论(0) 推荐(0)
摘要:利用selenium以及pyquery,爬取当当网图书信息,并且将数据存入文件以及MongoDB数据库中。 配置文件: dangdang.py 存入到文件中的数据: 存入到MongoDB中: 阅读全文
posted @ 2019-05-27 11:47 iveBoy 阅读(272) 评论(0) 推荐(0)
摘要:通过爬取猫眼电影top100,利用正则表达式进行实现,注意在匹配过程中,将需要匹配的内容的开始和结束用关键标志进行区分。 maoyan.py 爬取的内容: 阅读全文
posted @ 2019-05-27 11:35 iveBoy 阅读(573) 评论(0) 推荐(0)
摘要:删除页面没有太多的内容和功能 前端html 阅读全文
posted @ 2019-05-26 11:06 iveBoy 阅读(317) 评论(0) 推荐(0)
摘要:在模型model中用的都是时间字段DateTimeField字段,在后台处理中可以看到,在生成modelform过程中,继承的是BaseModelForm,而其对时间字段加入了特殊的date_time属性,这样通过前端的bootstrapdatetimepicker来进行时间的填充。 当然这种方式是 阅读全文
posted @ 2019-05-26 11:02 iveBoy 阅读(384) 评论(0) 推荐(0)
摘要:selenium主要解决浏览器中javascript渲染问题而存在的,有时我们爬取过来的网页内容与实际看到的内容是由差别的,这很有可能就是一些数据是由javascript渲染出来的,如何解决这个问题呢?这时可以引入selenium。 1、申明浏览器对象 2、访问页面 3、查找元素 (1)单个元素 另 阅读全文
posted @ 2019-05-25 11:43 iveBoy 阅读(353) 评论(0) 推荐(0)
摘要:正则表达式无论是在爬虫还是其它的应用中都是有一定作用的。 1、常见的匹配模式 2、re.match() re.match()方法会从字符的第一个位置匹配起。如果第一个位置匹配失败的话,就会返回none。 常规匹配 泛匹配 利用.*匹配多个字符 目标匹配 匹配字符串中的数字,正则表达式加上括号表示一个 阅读全文
posted @ 2019-05-24 22:21 iveBoy 阅读(512) 评论(0) 推荐(0)
摘要:如何快速的进行数据的添加以及修改呢?modelform来实现是可以达到效果的,在这里就是应用了modelform,每一个表都不同,所以需要创建不同的modelform。 def get_model_form_class(self, is_add,request,pk, *args,**kwargs) 阅读全文
posted @ 2019-05-23 16:09 iveBoy 阅读(307) 评论(0) 推荐(0)
摘要:在这个组件中有内置的4个处理函数,它们都有自己对应的url,那么它们的url是怎么构造的呢? 可以看出来,都是根据url的name反向解析生成对应的url。先changelist_view这个函数为例进行说明。 在这里它的name就是命名空间+app名字+model名字+前缀+参数+changeli 阅读全文
posted @ 2019-05-23 13:27 iveBoy 阅读(225) 评论(0) 推荐(0)
摘要:之前主要介绍了前端页面list_fiter功能的显示,但是list_display功能的展示并没有过多介绍,这里介绍一下是如何实现的。 可以看到凡是蓝线圈起来的都是通过字段名反射一个个取出来的,红线的是通过函数来构造的,这也就说明,list_display中单是字段名是不够的,还需要加入一些数据库中 阅读全文
posted @ 2019-05-23 13:27 iveBoy 阅读(186) 评论(0) 推荐(0)
摘要:页面搭建包括第一如何获取前端传过来的数据,第二如何在前端渲染出对应标签。 一、后台获取数据并进行处理 在路由系统中,每一个路由都对应着一个处理函数,如下所示: 其中changelist_view()就是处理显示数据的函数,可以看到被装饰器包裹,其主要目的是为了在执行函数前,加入一些逻辑,列如将req 阅读全文
posted @ 2019-05-23 11:20 iveBoy 阅读(294) 评论(0) 推荐(0)
摘要:在文章stark组件前戏中已经提到过,django的注册功能是通过AdminSite的单例进行组册的,所以在这里也可以进行单例模式。 可以看到之前_registry是一个字典,现在变成了一个列表,为什么要这样做呢? (1)这是因为如果是字典的话,一个model只能注册一次,现在是model可以注册多 阅读全文
posted @ 2019-05-22 21:12 iveBoy 阅读(293) 评论(0) 推荐(0)
摘要:stark组件的设计主要来源于django中admin的功能,在django admin中只需要将模型表进行注册,就可以在页面对该表进行curd的动作,那么django admin是如何做的呢? 在django中有自动发现功能的函数,发现每一个admin模块 # ACTION_CHECKBOX_NA 阅读全文
posted @ 2019-05-21 22:55 iveBoy 阅读(353) 评论(0) 推荐(0)
摘要:一、项目背景 YW公司是一家电池供应商,目前由于公司内部的需要,需要做一个CRM项目,需要每一个不同角色的员工登陆系统后处理自己的事情。其流程大致如下: 其项目包括三部分内容: 1、权限分配组件(rbac组件) 2、各个表的curd功能组件(stark组件) 3、将业务与上述两个组件进行融入 二、各 阅读全文
posted @ 2019-05-21 22:49 iveBoy 阅读(800) 评论(0) 推荐(0)

TOP