10.15仿admin开发stark组件(一)】的更多相关文章

2018-10-15 12:28:50 越努力,越幸运!永远不要高估自己! 低调做人,高调做事! 明天开stark项目!! admin 参考连接: http://www.cnblogs.com/yuanchenqi/articles/8323452.html admin里面的一些配置 admin.py from django.contrib import admin from .models import * # 带*的是必回的,其他了解,重点的注意 list_filter class Book…
2018-10-18 19:15:54 等这个stark组件做完了再上传到github上面,然后再整理博客!这就到周末啦! 因为models导入的时候出现bug,所以只有源码没有测试数据! 源码都有注释,已经很详细啦! 一步一步能看懂! 里面重要的思想就是 用类封装,组件用模块封装! 然后解耦!把重复的东西封装成类!面向对象编程! 看源码也许是一种享受! 越努力,与幸运!永远不要高估自己! 新增了 搜索框!和批量操作! 批量操作没有默认的删除可以迭代自行完成!批量操作需要用户自己定制函数 先放上…
2018-10-16 17:26:44 Django MTV  路由配置里面有 反向解析 参考连接:https://www.cnblogs.com/yuanchenqi/articles/7629939.html https://www.cnblogs.com/yuanchenqi/articles/7629939.html#_label2 这个就是仿照Django的admin做的! 这是1.0版本,后面还得迭代! 明天开始整理自己博客!这几天一直在看视频! 我觉得温故而习之,可以为师矣!!明天…
---恢复内容开始--- admin源码解析 一 启动:每个APP下的apps.py文件中. 首先执行每个APP下的admin.py 文件. def autodiscover(): autodiscover_modules('admin', register_to=site) 二 注册:在admin中注册,那么我们在登录admin的后台管理的时候回显示出来. class AdminSite(object): def __init__(self, name='admin'): self._regi…
1.新建Django项目--新建app:app01和stark--在settings中配置app和数据库--在models.py中新建模型表--完成数据库迁移 2.在stark下的apps.py中: from django.apps import AppConfig from django.utils.module_loading import autodiscover_modules class StarkConfig(AppConfig): name = 'stark' def ready(…
反向解析 在上一篇文章中,我们创建好了stark这个组件,一个应用一个表有四个默认的url,那么我们如何区别这些url,因为可能会有重复现象(本组件不会,因为前面拼接了应用名,表明,肯定唯一),概念请转至http://www.cnblogs.com/jokerbj/p/8337486.html反向解析,解决url重复问题 命名空间 我们解决了url问题,但是有可能每个应用下也会存在url相同,这个时候django只会标识其中一个,为了解决这个问题,我们加入命名空间概念,转至http://www.…
admin组件 admin组件为我们提供了针对django管理页面 我们先简短来看下django的admin组件的启动流程,注册流程,url匹配过程 启动注册 1. 扫描所有应用下的注册了应用中的admin.py文件(启动,即扫描) from django.contrib.admin.sites import site from django.utils.module_loading import autodiscover_modules def autodiscover(): autodisc…
搜索相关,搜索的本质就是从数据库查询出来的数据过滤 用户自定义给出过滤条件joker.py list_display = ('id','title','price',) show_add_btn = True model_form_class = BookModelForm # 自己定制 form config类中就需要有如下代码 # 搜索 方法 self.search_key = "q" 类属性 #===========================================…
增删改查,针对视图 我们需要modelform来创建,可自动生成标签,我们还要考虑用户是不是自己定制,依然解决方法是,继承和重写 app01下的joker.py文件 class BookModelForm(ModelForm): class Meta: model = models.Book fields = "__all__" error_messages={ "title":{"required":"该字段不能为空"} }…
一. url知识 还记得include分发么?里面的参数都可以有些什么? urlconf_module本质是返回的是模块路径对象 def include(arg, namespace=None, app_name=None): ....... return (urlconf_module, app_name, namespace) 1. 字符串格式? url(r'^joker/', include('app01.urls')), 源码解释. patterns = getattr(urlconf_…
----------------------------------------------------------------烦恼没完没了,内心动荡不安,呜呼哀哉. 一.有个特殊的需求,需要用stark组件来完成 django的admin,自己开发stark组件.完成类似数据库客户端的功能,对数据进行增删改查的需求. 二.这个特殊的需求,需要用stark组件来实现 1.在settings配置中分别注册这三个app # Application definition INSTALLED_APPS…
第1部分:macOS 10.15 Catalina Web开发环境 在macOS上开发Web应用程序真是令人高兴.有许多设置开发环境的选项,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQL之上提供了一个不错的UI .但是,有时MAMP Pro的速度变慢或版本过旧,或者由于配置模板和非标准构建的限制性系统而表现不佳. 在这样的时代,人们经常寻找一种替代方法,幸运的是有一种替代方法,并且设置起来相对简单. 在此博客文章中,我们将引导您完成设置和配置Apache 2.4和多个PHP…
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {<class '__main__.Foo'>: 123} 说明说法是成立的. 中级 class User(object): pass class Role(object): pass class Bar(object): def __init__(self,b): self.b = b _regist…
admin源码解析 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息.如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例…
仿照admin的stark自定义组件的功能实现:其中最主要的就是增删改查的实现 1.查:首先页面中显示表头和数据,都是动态的,而不是写死的. (1) 先看表头和表单数据:这个是查看的视图函数,但是为了使视图函数里边的代码简洁,在默认配置类的外部定义一个展示类, 因为在展示页面上会展示我们数据库中的数据,搜索框,过滤框,等.所以专门定义一个展示类. # 查看视图函数,将此里边的函数封装成一个函数 def listview(self, request): # print(self) # 当前访问模型…
一.先看下什么django的admin的pop到底是个什么东西 其实就是这么一个东西, a.在添加页面,在一对多和多对多的项后加了一个+号 b.点击这个加号,会弹出对应的添加 页面,在新的添加 c.添加完成后,新打开的页面自动关闭,然后把新添加数据的添加到对应的框中 二.下面我们来实现pop功能 a.知识点1,实现点击按钮,弹出一个新的窗口这个功能 首先我们写一个如下的html文件,点击这个文件,会重新打开一个窗口 <!DOCTYPE html> <html lang="en&…
一.先看下django的admin是如何实现批量操作 首先在配置类中定义一个函数 然后我们为这个函数对象设置一个属性,这个属性主要用来显示在select标签中显示的文本内容 最后把函数对象放到一个actions的列表中 下面看下具体的实现的代码 class testbook(admin.ModelAdmin): # 第一步,定义一个函数,必须要接受三个参数 def test_action(self,request,queryset): """ :param request:…
我们的stark组件用的我们的分页组件,没有重新写 下面直接看下分页的代码 class page_helper(): def __init__(self, count, current_page, per_page_num, base_url,parms): self.count = count self.current_page = current_page self.per_page_num = per_page_num self.base_url = base_url self.page_…
一.先看下django的admin是如何做搜索功能的 配置一个search_fields的列表就可以实现搜索的功能 class testbook(admin.ModelAdmin): # 第一步,定义一个函数,必须要接受三个参数 def test_action(self,request,queryset): """ :param request: :param queryset:这个就是需要批量操作的queryset对象 :return: """…
一.先看下django的admin是如何进行路由分发的 1.先看下django的admin的url路径有哪些 其实很简单,假如有一个书籍表,那么每张表对应四个url,增.删.改.查 查看的url http://127.0.0.1:8080/admin/app1/auther/ 编辑的url http://127.0.0.1:8080/admin/app1/auther/23/change/ 增加的url http://127.0.0.1:8080/admin/app1/auther/add/ 删…
一.先看下django的admin是如何实现注册功能 首先导入admin这个对象和我们的model模块 from django.contrib import admin # Register your models here. from app1 import models 然后调用admin的register方法进行注册 admin.site.register(models.book,testbook) admin.site.register(models.publist) admin.sit…
先看一张页面展示的效果图: 看一看我的  model 表!是什么样子: 看一看数据库是什么样子: 看 页面展示图,有表头. 有数据.模型表中,每一个字段, 都指定了 verbose_name. 如何解决? 每个子类中,自定义 list_display 用于指定, 需要展示. 表中的哪个字段(这个名字和表中的字段需要,对应上. 不能错.)class UserInfoHandler(StartHandler): list_display = ["name", "age"…
自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我们要编写的组件,我们的主要逻辑就写在里面 在settings配置中分别注册这三个app INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.c…
已经解决的,自定义的扩展函数,功能.但是 不可能返回. 一个 固定的页面把!  应该是,点击那条 记录之后的编辑, 就会跳转到相应的,编辑页面.所以 这个标签的  <a href="/stark/app01/userinfo/change/1/">编辑</a>  他应该是这个样子! stark  是主路由中, 路由分发的  url 路径: app01/userinfo/change/1/这个 应该是 ,根据反向解析. 的来的路径.  最后的 参数 1 是. 每条…
一.需求 仿照django的admin,开发自己的stark组件.实现类似数据库客户端的功能,对数据进行增删改查. 二.实现 1.在settings配置中分别注册这三个app # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contr…
# Create your models here. from django.db import models class Department(models.Model): """ 部门表 市场部 1000 销售 1001 """ title = models.CharField(verbose_name='部门名称', max_length=16) code = models.IntegerField(verbose_name='部门编号',…
在网上找了些以太仿的资料,是node.js写的,之前也了解过node.js,正好也可以用上.本篇主要学习以太仿DApp开发环境搭建. 一.安装 DApp 开发环境 1.1安装 Node.js 首先下载node.js:https://nodejs.org/en/,下载后直接安装即可.安装完毕,打开一个控制台窗口,可以使用 node 了.这里我下载的是10.15.3版本,安装完成之后使用node -v验证是否安装成功. 1.2 安装geth.ganache 下载 https://gethstore.…
现在让我说啥是stark组件,我也说不清楚.反正从今天讲的知识来看,今天完成的就是自己写一个模块,这个模块包含了admin后台管理工具的一些比较好用的功能,我们把它提炼出来,也就是相当于自己写一个admin后台管理工具,但这个工具不叫admin了,叫stark.既然是模仿admin的实现功能,所以整个执行过程和admin是一样的.首先我们得建一个stark包,即一个stark文件夹,在这里,我们也可以新建一个APP叫stark也行. 第一步,启动所有APP下的stark.py文件 每当我们创建一…
1.django的admin配置 model.py from django.db import models # Create your models here. class UserInfo(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() def __str__(self): return self.name class Book(models.Model): title=models.…
Stark组件的使用 组件的字段 list_display=[] 需要显示的字段 list_display_links=[] #需要链接编辑字段 Stark_Model_Form=[] #设置Model_Form search_fields=[] #搜索字段(多对多一对多需要__) actions=[] #自定义actions方法 list_filter=[] #过滤字段 不包括普通字段 字段 组件具体用法 from stark.server.stark import ModelStark,si…