ordering = ['-qq'] #自定义排序,默认'-id'


 #base_admin.py

 # ————————24PerfectCRM实现King_admin自定义操作数据————————
from django.shortcuts import render,redirect
# ————————24PerfectCRM实现King_admin自定义操作数据———————— # ————————04PerfectCRM实现King_admin注册功能———————— #Django admin 注册功能的形式
# sites = {
# 'crm':{
# 'customers':CustomerAdmin,
# 'customerfollowup':CustomerFollowUPAdmin,
# }
# } class AdminRegisterException(Exception): #自定义异常
def __init__(self,msg):
self.message = msg class BaseAdmin(object):#自定义方法
list_display = () #显示的字段(不能包含ManyToManyField) # ————————11PerfectCRM实现King_admin分页显示条数————————
list_per_page = 10 # 默认分页条数10
# ————————11PerfectCRM实现King_admin分页显示条数———————— # ————————15PerfectCRM实现King_admin多条件过滤————————
list_filter = () # 过滤器(可以包含ManyToManyField) (注意加 逗号 , )
# ————————15PerfectCRM实现King_admin多条件过滤———————— # ————————18PerfectCRM实现King_admin搜索关键字————————
search_fields = () #搜索(不能包含CharField)(注意加 逗号 , )
# ————————18PerfectCRM实现King_admin搜索关键字———————— # ————————26PerfectCRM实现King_admin自定义排序————————
ordering = None #自定义排序
# ————————26PerfectCRM实现King_admin自定义排序———————— # ————————24PerfectCRM实现King_admin自定义操作数据————————
actions = []#自定功能 default_actions = ["delete_selected",] #默认删除的函数
#默认删除的函数
def delete_selected(self,request,queryset):
# from django.shortcuts import render, redirect
print("goint to delete ",queryset)
app_name=self.model._meta.app_label#app名
model_name=self.model._meta.model_name#表名
objs=queryset#类对象
action=request._admin_action
print(action,'<-------action')
if request.POST.get('delete_confirm')=='yes': #{#table_delete.html#}
queryset.delete()
return redirect('/king_admin/%s/%s/'%(app_name,model_name))
selected_ids=','.join([str(i.id) for i in queryset])
print(selected_ids,'<---selected_ids')
objs=queryset
return render(request,"king_admin/table_delete.html", locals()) #返回删除页
delete_selected.short_description = "默认批量删除"
# ————————24PerfectCRM实现King_admin自定义操作数据———————— # ————————05PerfectCRM实现King_admin注册功能获取内存————————
class AdminSite(object):
def __init__(self):
self.registered_sites = {} #传到views 里调用
def register(self,model,admin_class=None): #默认值None 使用 BaseAdmin
app_name = model._meta.app_label#用内置方法获取 APP名字 (crm)
model_name = model._meta.model_name#用内置方法获取 表名 (Customer)
if app_name not in self.registered_sites:
self.registered_sites[app_name] = {} #创建 crm={}
if model_name in self.registered_sites[app_name]:
raise AdminRegisterException("app [%s] model [%s] has already registered!异常"
%(app_name,model_name))#自定义异常,
if not admin_class:
admin_class = BaseAdmin #默认值None 使用 BaseAdmin
# self.registered_sites[app_name][model_name] = admin_class #注册APP
# site = AdminSite() # 实例化类 单例模式 # ————————05PerfectCRM实现King_admin注册功能获取内存————————
#registered_sites {'crm': {'customer': <class 'crm.kingadmin.CustomerAdmin'>, 'courserecord': <class 'kingadmin.base_admin.BaseAdmin'>}}
#把类名放到class的对象里,然后通过class的对象传到前端
# admin_class.model = model
# self.registered_sites[app_name][model_name] = admin_class #注册APP
#
# site = AdminSite() #实例化类 单例模式
# ————————05PerfectCRM实现King_admin注册功能获取内存———————— # ————————06PerfectCRM实现King_admin注册功能获取内存优化处理————————
#没有实例化会使用同一个内存地址
admin_obj = admin_class() #先实例化
admin_obj.model = model #参数赋值给实例
self.registered_sites[app_name][model_name] = admin_obj#注册APP
#实例化后,调用会使用不同的内存地址 site = AdminSite() #实例化类 单例模式
# ————————06PerfectCRM实现King_admin注册功能获取内存优化处理———————— # registered_sites={}
# def register(model,admin_class=None): #默认值None 使用 BaseAdmin
# app_name = model._meta.app_label#用内置方法获取 APP名字 (crm)
# model_name = model._meta.model_name#用内置方法获取 表名 (Customer)
# if app_name not in registered_sites:
# registered_sites[app_name] = {} #创建 crm={}
# if model_name in registered_sites[app_name]:
# raise AdminRegisterException("app [%s] model [%s] has already registered!异常"
# %(app_name,model_name))#自定义异常
# if not admin_class:
# admin_class = BaseAdmin #默认值None 使用class BaseAdmin
# registered_sites[app_name][model_name] = admin_class #注册APP # ————————05PerfectCRM实现King_admin注册功能获取内存———————— # ————————04PerfectCRM实现King_admin注册功能————————

#base_admin.py

 # kingadmin.py
# ————————04PerfectCRM实现King_admin注册功能————————
from crm import models
#print("kingadmin crm",models.Customer) # ————————05PerfectCRM实现King_admin注册功能获取内存————————
# from king_admin.base_admin import register,BaseAdmin
from king_admin.base_admin import site,BaseAdmin
# ————————05PerfectCRM实现King_admin注册功能获取内存———————— # ————————24PerfectCRM实现King_admin自定义操作数据————————
from django.shortcuts import render
# ————————24PerfectCRM实现King_admin自定义操作数据———————— #04客户信息表
class CustomerAdmin(BaseAdmin):#定制Djanago admin
list_display = ('id', 'qq', 'source', 'consultant', 'content', 'date') # 显示字段表头 # ————————11PerfectCRM实现King_admin分页显示条数————————
list_per_page = 2 #分页条数 # 默认分页条数10
# ————————11PerfectCRM实现King_admin分页显示条数———————— # ————————16PerfectCRM实现King_admin日期过滤————————
# ————————15PerfectCRM实现King_admin多条件过滤————————
# 过滤器(可以包含ManyToManyField) (注意加 逗号 , )
# list_filter = ('source','consultant','consult_courses',)
list_filter = ('date','source','consultant','consult_courses',)
# ————————15PerfectCRM实现King_admin多条件过滤————————
# ————————16PerfectCRM实现King_admin日期过滤———————— # ————————18PerfectCRM实现King_admin搜索关键字————————
#搜索(不能包含CharField)(注意加 逗号 , )
search_fields = ('name','qq',)
# ————————18PerfectCRM实现King_admin搜索关键字———————— # ————————26PerfectCRM实现King_admin自定义排序————————
ordering = '-qq' #自定义排序,默认'-id'
# ————————26PerfectCRM实现King_admin自定义排序———————— # ————————24PerfectCRM实现King_admin自定义操作数据————————
# from django.shortcuts import render
actions = ['test_actions',]#定制功能 #测试返回到一个新页面
def test_actions(self,request,arg2):#对应的函数 #request类自己的请求 #arg2类的内容
return render(request,"king_admin/table_index.html")
test_actions.short_description = "测试显示中文"
# ————————24PerfectCRM实现King_admin自定义操作数据———————— # ————————05PerfectCRM实现King_admin注册功能获取内存————————
# register(models.Customer,CustomerAdmin)
# register(models.CourseRecord)
site.register(models.Customer,CustomerAdmin)
site.register(models.CourseRecord)
# ————————05PerfectCRM实现King_admin注册功能获取内存———————— # ————————04PerfectCRM实现King_admin注册功能————————

# kingadmin.py

 #views

 # ————————02PerfectCRM创建ADMIN页面————————
from django.shortcuts import render # ————————04PerfectCRM实现King_admin注册功能————————
# from django import conf #配置文件
# print("dj conf:",conf) #配置文件
# print("dj conf:",conf.settings)#配置文件.设置
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————04PerfectCRM实现King_admin注册功能————————
from king_admin import app_config #自动调用 动态加载类和函数
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————04PerfectCRM实现King_admin注册功能————————
# from king_admin.base_admin import registered_sites # registered_sites={}
from king_admin import base_admin
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————11PerfectCRM实现King_admin基本分页————————
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger # 分页功能
# ————————11PerfectCRM实现King_admin基本分页———————— def app_index(request):
# ————————04PerfectCRM实现King_admin注册功能————————
# for app in conf.settings.INSTALLED_APPS:
# print(app)#循环打印 配置文件.设置.安装应用程序#.Perfectcustomer\settings里的INSTALLED_APPS列表
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————04PerfectCRM实现King_admin注册功能————————
# return render(request, 'king_admin/app_index.html')
# print("registered_sites",registered_sites)
# return render(request, 'king_admin/app_index.html')
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————04PerfectCRM实现King_admin注册功能————————
# print("registered_sites", base_admin.registered_sites)
# return render(request, 'king_admin/app_index.html')
# ————————04PerfectCRM实现King_admin注册功能———————— # ————————05PerfectCRM实现King_admin注册功能获取内存————————
print("registered_sites",base_admin.site.registered_sites)
return render(request, 'king_admin/app_index.html', {"site": base_admin.site})
# ————————05PerfectCRM实现King_admin注册功能获取内存———————— # ————————02PerfectCRM创建ADMIN页面———————— # ————————13PerfectCRM实现King_admin分页页数————————
#处理def table_data_list(request,app_name,model_name):里的内容,
def filter_querysets(request,queryset):
condtions = {} #定义一个字典用来存过滤的条件
for k,v in request.GET.items():#不需要空的,判断是否为空
# ————————18PerfectCRM实现King_admin搜索关键字————————
# ————————17PerfectCRM实现King_admin单列排序————————
# if k=="page":continue##kingadmin分页功能 # if k=="page":continue##kingadmin分页功能 #写法一
# elif k=="_o":continue##kingadmin排序功能 <a href="?_o={{ column }}">{{ column }}</a> # if k in ("page","_o") :continue #kingadmin分页功能 #kingadmin排序功能 #写法二 # if k == "page"or k == "_o": #保留的分页关键字 和 排序关键字 #写法三
# continue #continue是结束单次循环
# ————————17PerfectCRM实现King_admin单列排序————————
if k in ("page", "_o", "_q"): continue # kingadmin分页,排序,搜索#判断标签是否存在 自定义的名称
# ————————18PerfectCRM实现King_admin搜索关键字———————— # ————————15PerfectCRM实现King_admin多条件过滤————————
if v:
condtions[k] = v #进行配对字典
# ————————15PerfectCRM实现King_admin多条件过滤————————
query_res = queryset.filter(**condtions) return query_res,condtions
# ————————13PerfectCRM实现King_admin分页页数———————— # ————————08PerfectCRM实现King_admin显示注册表的字段表头————————
def table_data_list(request,app_name,model_name):
#通过2个参数到base_admin里获取class AdminRegisterException(Exception): 的对象
admin_obj = base_admin.site.registered_sites[app_name][model_name] #base_admin # ————————24PerfectCRM实现King_admin自定义操作数据————————
if request.method == "POST":#批量操作
action = request.POST.get("action_select")#要调用的自定制功能函数
selected_ids = request.POST.get("selected_ids")#前端提交的数据
print(selected_ids,type(selected_ids),"selected_ids-----")
#if type(selected_ids)!='str':
#selected_ids = json.loads(selected_ids)#进行转换数据
print(selected_ids,type(action),action,"selected_ids==========")
#print("action:",selected_ids,action)
if selected_ids :
#selected_ids = json.loads(selected_ids)#进行转换数据
selected_objs = admin_obj.model.objects.filter(id__in=selected_ids.split(','))#返回之前所选中的条件
else:
raise KeyError('错误,没有选择对象!') if hasattr(admin_obj,action):
action_func = getattr(admin_obj,action)#如果admin_obj 对象中有属性action 则打印self.action的值,否则打印'not find'
request._admin_action=action#添加action内容
print(request._admin_action,action,'<--------')
return action_func(request,selected_objs)
# ————————24PerfectCRM实现King_admin自定义操作数据———————— # ————————09PerfectCRM实现King_admin显示注册表的内容————————
admin_obj.querysets = admin_obj.model.objects.all()#取数据 传到 前端
# ————————09PerfectCRM实现King_admin显示注册表的内容———————— # ————————11PerfectCRM实现King_admin分页显示条数————————
# from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger # 分页功能#放在顶上导入
obj_list = admin_obj.model.objects.all()#取数据 传到 前端 #base_admin #获取传过来的所有对象 # ————————13PerfectCRM实现King_admin分页页数————————
queryset, condtions = filter_querysets(request, obj_list) #base_admin # 调用条件过滤
# ————————13PerfectCRM实现King_admin分页页数———————— # ————————18PerfectCRM实现King_admin搜索关键字————————
queryset = get_queryset_search_result(request,queryset,admin_obj)##搜索后
# ————————18PerfectCRM实现King_admin搜索关键字———————— # ————————26PerfectCRM实现King_admin自定义排序————————
sorted_queryset = get_orderby(request, queryset,admin_obj) #排序后的结果
# ————————17PerfectCRM实现King_admin单列排序————————
# sorted_queryset = get_orderby(request, queryset) #排序后的结果
# ————————15PerfectCRM实现King_admin多条件过滤————————
# paginator = Paginator(obj_list,admin_obj.list_per_page) #kingadmin里class CustomerAdmin(BaseAdmin):
# paginator = Paginator(queryset, admin_obj.list_per_page)
# ————————15PerfectCRM实现King_admin多条件过滤————————
paginator = Paginator(sorted_queryset, admin_obj.list_per_page)
# ————————17PerfectCRM实现King_admin单列排序————————
# ————————26PerfectCRM实现King_admin自定义排序———————— page = request.GET.get('page')
try:
objs = paginator.page(page) # 当前的页面的数据
except PageNotAnInteger:
# 如果页面不是一个整数,交付第一页。
objs = paginator.page(1)
except EmptyPage:
# 如果页面的范围(例如9999),交付最后一页的搜索结果。
objs = paginator.page(paginator.num_pages)
admin_obj.querysets = objs # base_admin # ————————13PerfectCRM实现King_admin分页页数————————
admin_obj.filter_condtions = condtions # base_admin
# ————————13PerfectCRM实现King_admin分页页数———————— # ————————11PerfectCRM实现King_admin分页显示条数———————— return render(request,"king_admin/table_data_list.html",locals())
# ————————08PerfectCRM实现King_admin显示注册表的字段表头———————— # ————————17PerfectCRM实现King_admin单列排序————————
# def get_orderby(request,queryset):
# order_by_key = request.GET.get("_o") #获取URL里有没有("_o") <a href="?_o={{ column }}">{{ column }}</a>
# #页面刚开始没有这个值
# if order_by_key != None: #有("_o")这个值 就进行排序
# query_res = queryset.order_by(order_by_key)
# else: #没有就不排序,直接返回
# query_res = queryset
# return query_res #排序时会错 # orderby_key = request.GET.get("_o")
# if orderby_key:
# return queryset.order_by(orderby_key)
# return queryset #在table_data_list添加
# def table_data_list(request,app_name,model_name): #详细列表
# sorted_queryset = get_orderby(request, queryset)
#在filter_querysets添加
#if k == "page"or k == "_o": #保留的分页关键字 和 排序关键字
# ————————17PerfectCRM实现King_admin单列排序———————— # ————————26PerfectCRM实现King_admin自定义排序————————
def get_orderby(request, queryset, admin_obj):
orderby_key = request.GET.get("_o")
#order_by_key1=order_by_key.strip()
if orderby_key: #有获取到字段
query_res = queryset.order_by(orderby_key.strip()) #.strip()默认删除空白符(包括'\n', '\r', '\t', ' ')
else:
if admin_obj.ordering: #查看kingadmin‘有没有 ordering = '-qq' # 自定义排序
query_res = queryset.order_by("%s" %admin_obj.ordering)
else:
query_res = queryset.order_by('-id') #默认倒序
return query_res #在table_data_list添加
# def table_data_list(request,app_name,model_name): #详细列表
# sorted_queryset = get_orderby(request, queryset, admin_obj) # 排序后的结果
# ————————26PerfectCRM实现King_admin自定义排序———————— # ————————18PerfectCRM实现King_admin搜索关键字————————
from django.db.models import Q
def get_queryset_search_result(request,queryset,admin_obj):
search_key = request.GET.get("_q", "")#取定义名,默认为空
q_obj = Q()#多条件搜索 #from django.db.models import Q
q_obj.connector = "OR" # or/或 条件
for column in admin_obj.search_fields: #搜索目标crm/kingadmin里class CustomerAdmin(BaseAdmin):search_fields = ('name','qq',)
q_obj.children.append(("%s__contains" % column, search_key)) #运态添加多个条件
res = queryset.filter(q_obj) #对数据库进行条件搜索
return res #返回结果
#在table_data_list添加
#def table_data_list(request,app_name,model_name): #详细列表
# queryset = get_queryset_search_result(request,queryset,admin_obj)
# ————————18PerfectCRM实现King_admin搜索关键字———————— # ————————19PerfectCRM实现King_admin数据修改————————
from king_admin import forms
#修改内容
# def table_change(request,app_name,model_name):
# obj_form = forms.CustomerModelForm() #创建一个空表单
# return render(request,"kingadmin/table_change.html",locals()) def table_change(request,app_name,model_name,obj_id):
admin_obj = base_admin.site.registered_sites[app_name][model_name] #获取表对象
#kingadmin/forms.py里def CreateModelForm(request,admin_obj):
model_form = forms.CreateModelForm(request,admin_obj=admin_obj) ##modelform 生成表单 加验证
# obj_form = model_form() # 表单
obj = admin_obj.model.objects.get(id=obj_id)#根据ID获取数据记录 # ————————20PerfectCRM实现King_admin数据修改美化————————
# #面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
# obj_form = model_form(instance=obj) # 数据传入表单 if request.method == "GET":
obj_form = model_form(instance=obj)
elif request.method == "POST":
obj_form = model_form(instance=obj,data=request.POST)
if obj_form.is_valid():
obj_form.save()
# ————————20PerfectCRM实现King_admin数据修改美化———————— return render(request,"king_admin/table_change.html",locals())
# ————————19PerfectCRM实现King_admin数据修改———————— # ————————21PerfectCRM实现King_admin查看页面美化————————
#单个具体app页面
def table_index(request,app_name):
bases=base_admin.site.registered_sites[app_name]#取出对应app对象
return render(request, 'king_admin/table_index.html', {"site":bases,'app_name':app_name})
# ————————21PerfectCRM实现King_admin查看页面美化———————— # ————————22PerfectCRM实现King_admin数据添加————————
from django.shortcuts import redirect # kingadmin添加内容
def table_add(request,app_name,model_name):
admin_obj = base_admin.site.registered_sites[app_name][model_name] #获取表对象
model_form = forms.CreateModelForm(request,admin_obj=admin_obj) ##modelform 生成表单 加验证 if request.method == "GET":
obj_form = model_form() elif request.method == "POST":
obj_form = model_form(data=request.POST) #创建数据
if obj_form.is_valid():
obj_form.save()
if not obj_form.errors: #没有错误返回原来的页面
#from django.shortcuts import redirect
return redirect("/king_admin/%s/%s/" % (app_name,model_name))
return render(request, "king_admin/table_add.html", locals()) # ————————22PerfectCRM实现King_admin数据添加———————— # ————————23PerfectCRM实现King_admin数据删除————————
def table_delete(request,app_name,model_name,obj_id):
admin_obj = base_admin.site.registered_sites[app_name][model_name]#表类
objs=admin_obj.model.objects.filter(id=obj_id)#类的对象
if request.method=='POST':
objs.delete()#删除
return redirect("/king_admin/%s/%s/" % (app_name,model_name))#转到列表页面
return render(request, "king_admin/table_delete.html", locals())#locals 返回一个包含当前范围的局部变量字典。
# ————————23PerfectCRM实现King_admin数据删除————————

#views


如果感觉本章博客对您有帮助,请尽情打赏吧!

Django项目:CRM(客户关系管理系统)--34--26PerfectCRM实现King_admin自定义排序的更多相关文章

  1. Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL

    #models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...

  2. Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  3. Django项目:CRM(客户关系管理系统)--82--72PerfectCRM实现CRM动态菜单和角色

    #models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...

  4. Django项目:CRM(客户关系管理系统)--58--48PerfectCRM实现CRM客户报名流程学生合同

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  5. Django项目:CRM(客户关系管理系统)--69--59PerfectCRM实现king_admin行内编辑

    #base_admin.py # ————————24PerfectCRM实现King_admin自定义操作数据———————— from django.shortcuts import render ...

  6. Django项目:CRM(客户关系管理系统)--67--57PerfectCRM实现admin批量生成上课记录

    #admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...

  7. Django项目:CRM(客户关系管理系统)--65--55PerfectCRM实现CRM客户报名状态颜色变化

    # kingadmin.py # ————————04PerfectCRM实现King_admin注册功能———————— from crm import models #print("ki ...

  8. Django项目:CRM(客户关系管理系统)--64--54PerfectCRM实现CRM客户报名链接

    # kingadmin.py # ————————04PerfectCRM实现King_admin注册功能———————— from crm import models #print("ki ...

  9. Django项目:CRM(客户关系管理系统)--43--35PerfectCRM实现CRM重写Admin密码修改

    #admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...

  10. Django项目:CRM(客户关系管理系统)--42--34PerfectCRM实现CRM自定义用户

    #models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...

随机推荐

  1. iOS开发系列-文件上传

    概述 Http协议对文件上传协议要求的 1. 必须设置请求头Content-Type为multipart/form-data.在iOS中后面需要跟上分隔符比如:boundary=----WebKitF ...

  2. Vim操作 -- 多段复位粘贴

    Vim可以多段复制.粘贴.即,内容X复制到寄存器“1”,内容Y复制到寄存器“2”:粘贴时可以选择从“1”还是“2”粘贴. (1) Vim有13个粘贴板,分别是0.1.2.....9.a.“.+:用:r ...

  3. 廖雪峰Java14Java操作XML和JSON-2JSON-2处理JSON

    解析JSON JSR 353 API 常用的第三方库 * Jackson * gson * fastjson Jackson: 提供了读写JSON的API JSON和JavaBean可以互相转换 可食 ...

  4. 标准方程法_岭回归_LASSO算法_弹性网

    程序所用文件:https://files.cnblogs.com/files/henuliulei/%E5%9B%9E%E5%BD%92%E5%88%86%E7%B1%BB%E6%95%B0%E6%8 ...

  5. mybatis 一对多和一对一写法注意事项

    <resultMap id="ChartResultMap" type="com.qif.dsa.ucenter.planinfo.entity.ChartDate ...

  6. 重磅榜单!互联网金融Top100总估值超1.1万亿,27家独角兽上榜!

    时隔4个月,爱分析的“中国互联网金融企业估值排行榜”更新了! 在这4个月当中,我们调研了数十位企业创始人.专业投资人以及资深行业专家,尤其针对金服集团.消费金融.财富管理.征信等领域进行了深入研究.因 ...

  7. Hadoop 初体验

    Hadoop 是一个基于谷歌发表的几篇论文而开发的一个分布式系统基础架构,用户可在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop现在已经成了大数据的代 ...

  8. 模板——网络流Dinic

    感谢这位大佬的博客:https://www.cnblogs.com/SYCstudio/p/7260613.html 给予了我莫大的帮助! 主要说一下网络流的几个注意点: 1.和二分图匹配相似,无法继 ...

  9. JVM基础总结

  10. 2019-9-2-C#判断文件属于文本或二进制

    title author date CreateTime categories C#判断文件属于文本或二进制 lindexi 2019-09-02 12:57:37 +0800 2018-2-13 1 ...