def

Django的rest_framework的视图之Mixin类编写视图源码解析

限于喜欢 提交于 2021-02-10 08:00:08
  Django的rest_framework的视图之Mixin类编写视图源码解析      Mixin类编写视图      我们这里用auther表来做演示,先为auther和autherdetail写2个url      url(r'^autherdetail/(?P<id>\d+)', views.Book_detail_cbv.as_view(), name="autherdetail"),      url(r'^auther/', views.Book_cbv.as_view(),name="auther"),      然后分别为这2个类写对应的序列化的类      class authermodelserializer(serializers.ModelSerializer):      class Meta:      model = models.Auther      fields = "__all__"      下面我们开写视图函数      需要在view文件中导入2个模块      1      2      from rest_framework import mixins      from rest_framework import generics      先介绍一下mixins类

Django-xadmin+django-import-export导入导出的实现

醉酒当歌 提交于 2021-02-10 06:03:31
转载自:https://blog.csdn.net/zcyuefan/article/details/77748850 1. 需求vs现状 1.1 需求 要求做一个ERP后台辅助管理的程序,有以下几项基本要求: 1. 基本的增删改查功能 2. 基于对象的权限控制(如:系统用户分为平台运营人员和商家用户,商家用户小A只能查看编辑所属商家记录,而管理员可以纵览全局) 3. 数据库记录导入导出(xsl, json等),并且拥有对象级的权限控制(如:小A不能导出小B公司的信息,更不能导入小B公司信息进行更新和新增) 1.2 现状 实现需求1:Django-admin让我们能够很方便的实现一个管理后台程序。django-xadmin则在拥有admin基本功能的基础上增加了更为丰富的功能、界面也更加漂亮。类似还有django-suit等,本文使用xadmin(功能更丰富); 实现需求2:django-admin,以及xadmin都只有基于model级的权限控制机制,需要自己扩展或者使用开源解决方案,如django-guardian,django-rules,本文结合django-rules实现了该功能; 实现需求3:xadmin虽然自带导出功能,但是导入功能没有实现,django自带后台结合django-import-export可以很容易实现,但是xadmin并不直接兼容

python实现顺序查找和哈希查找

喜夏-厌秋 提交于 2021-02-09 20:32:13
顺序查找非常简单,只是个开胃菜,今天主要练习的是哈希查找 先上 顺序查找 代码: def sequence_search(array, num): for i in range(len(array)): if array[i] == num: return i return False array_0 = [23, 43, 12, 54, 65, 48 ] print (sequence_search(array_0, 12 )) >>> 2 在来看 hash查找 : 算法思想 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。 算法流程   1)用给定的哈希函数构造哈希表;   2)根据选择的冲突处理方法解决地址冲突;      常见的解决冲突的方法:拉链法和线性探测法。   3)在哈希表的基础上执行哈希查找。  单纯论查找复杂度:对于无冲突的Hash表而言,查找复杂度为O(1)(注意,在查找之前我们需要构建相应的Hash表)。 class HashSearch: def __init__ (self, num): if isinstance(num, int): self.num = abs(num) self.empty

Django的rest_framework的视图之Mixin类编写视图源码解析

廉价感情. 提交于 2021-02-09 15:34:36
Mixin类编写视图 我们这里用auther表来做演示,先为auther和autherdetail写2个url url(r'^autherdetail/(?P<id>\d+)', views.Book_detail_cbv.as_view(), name="autherdetail"), url(r'^auther/', views.Book_cbv.as_view(),name="auther"),   然后分别为这2个类写对应的序列化的类 class authermodelserializer(serializers.ModelSerializer): class Meta: model = models.Auther fields = "__all__" 下面我们开写视图函数   需要在view文件中导入2个模块 from rest_framework import mixins from rest_framework import generics   先介绍一下mixins类,我们主要用mixins类来对queryset对象或者model对象做操作 mixins.ListModelMixin 这个是用来显示queryset的数据 mixins.CreateModelMixin 这个用来创建一条model对象 mixins.RetrieveModelMixin

你用 Python 写过最牛逼的程序是什么?

那年仲夏 提交于 2021-02-09 11:31:32
编译:Python开发者 - Jake_on 英文:Quora http://python.jobbole.com/85986/ 有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/脚本是什么?」。本文摘编了 3 个国外程序员的多个小项目,含代码。 Manoj Memana Jayakumar, 3000+ 顶 更新:凭借这些脚本,我找到了工作!可看我在这个帖子中的回复,《Has anyone got a job through Quora? Or somehow made lots of money through Quora?》 1. 电影/电视剧 字幕一键下载器 我们经常会遇到这样的情景,就是打开字幕网站subscene 或者opensubtitles, 搜索电影或电视剧的名字,然后选择正确的抓取器,下载字幕文件,解压,剪切并粘贴到电影所在的文件夹,并且需把字幕文件重命名以匹配电影文件的名字。是不是觉得太无趣呢?对了,我之前写了一个脚本,用来下载正确的电影或电视剧字幕文件,并且存储到与电影文件所在位置。所有的操作步骤仅需一键就可以完成。懵逼了吗? 请看这个 Youtube 视频:https://youtu.be/Q5YWEqgw9X8 源代码 存放在GitHub: subtitle-downloader 更新: 目前,该脚本支持多个字幕文件同时下载。步骤

[Linux]Linux系统查找文件命令总结

情到浓时终转凉″ 提交于 2021-02-09 11:11:39
1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 find的使用格式如下:   $ find <指定目录> <指定条件> <指定动作>   - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。   - <指定条件>: 所要搜索的文件的特征。   - <指定动作>: 对搜索结果进行特定的处理。 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。 find的使用实例:   $ find . -name "my*" 搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。   $ find . -name "my*" -ls 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。   $ find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。 2. locate locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次

python爬虫爬取链家二手房信息

…衆ロ難τιáo~ 提交于 2021-02-09 10:00:58
#coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup import json import csv import time # 构建请求头 userAgent = UserAgent() headers = { 'user-agent': userAgent .Chrome } # 声明一个列表存储字典 data_list = [] def start_spider(page): #设置重连次数 requests.adapters.DEFAULT_RETRIES = 15 s = requests.session() #设置连接活跃状态为False s.keep_alive = False #爬取的url,默认爬取的南京的链家房产信息 url = 'https://nj.lianjia.com/ershoufang/pg{}/'.format(page) # 请求url resp = requests.get(url, headers=headers,timeout=10) # 讲返回体转换成Beautiful soup = BeautifulSoup(resp.content, 'lxml') # 筛选全部的li标签

Python爬取链家二手房源信息

杀马特。学长 韩版系。学妹 提交于 2021-02-09 09:53:35
爬取链家网站二手房房源信息,第一次做,仅供参考,要用scrapy。 import scrapy,pypinyin,requests import bs4 from ..items import LianjiaItem class LianjiaSpider(scrapy.Spider): name = 'lianjia_dl' allowed_domains = ['www.lianjia.com'] start_urls = [] url_0 = 'https://www.lianjia.com/city/' res = requests.get(url_0) bs_cs = bs4.BeautifulSoup(res.text,'html.parser') xinxi_cs = bs_cs.find_all('div',class_='city_province') for data_cs in xinxi_cs: cs_s = data_cs.find('ul').find_all('li') for cs_1 in cs_s: yess = cs_1.find('a')['href'] if yess.find('fang')>=0: #若fang字符串在yess中,则yess.find('fang')是大于等于0的,显示在字符串中的位置 continue else:

python之元组

久未见 提交于 2021-02-09 09:52:04
  tuple是一个特殊的有序列表,创建后不能再更改。应该在定义的时候赋值。元素值可以是int、string、list等,获取的方法和list一样。如果元素值是list,list的值是可以改变的,那么这时的tuple其实是可变的。len(tup)获取元组长度,注意下标从0开始。 a.定义并初始化一个元组   tuple_1 = (0, 1) b.定义一个空的元组   tuple_2 = () c.定义只有一个元素的元组   tuple_3 = (1,) # 注意tuple_3=(1)并不是元组,这里的括号()只是括号的作用 d.有趣的赋值    e.练习题 # -*- coding:utf-8 -*- # __author__ = 'Cc' """ 29.将元组(1,2)和(3, 4)合并成一个元组 30.将(1,2,3)三个元素解包到变量x,y,z 题31.返回元组(1, 2, 3)中1的索引号 题32.返回元组(1, 2, 3, 3)中3出现的次数 题33.判断a是否在元组(a, b, c)中 """ def tuple_merge(): a = (1, 2 ) b = (3, 4 ) c = a + b return c def decompose_tup(): tuple_30 = (1, 2, 3 ) x, y, z = tuple_30 return x, y, z

python ---- django

好久不见. 提交于 2021-02-09 09:05:58
一、链接数据库 pymysql pip install pymysql 二、安装django,首先进入到创建好的虚拟环境中,否则安装django便会装到系统中 pip list # 查看环境中是否存在django pip install django # 安装最新版本的django 三、创建项目 django-admin startproject 项目名 django-admin help 查看所有可执行命令 创建好项目之后会生成一个同名的目录和一个manage.py的python脚本 四、启动django项目,运行manage.py脚本 python manage.py runserver 默认执行后访问对的ip和端口号为127.0.0.1 和8000 通过启动命令将ip地址改为局域网ip python manage.py runserver 192.168 . 0.1 : 7000 但是修改主机地址之后,需要在setting.py中进行相应为配置,若配置之后还是无法访问,可能是防火墙的原因,需要关闭防火墙 ALLOWED_HOSTS = [“192.168.0.1”] 五、视图函数 创建app,执行之后生成的app目录机构如下,里面的urls.py为手动添加的 python manage.py startapp admin 在views进行输出时