books

DRF的路由生成类的使用

安稳与你 提交于 2020-01-01 05:04:39
DRF路由生成类的使用 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouter DefaultRouter 使用方法 : 1) 创建router对象,并注册视图集,例如 from rest_framework import routers router = routers.SimpleRouter() router.register(r'books', BookInfoViewSet, base_name='book') register(prefix, viewset, base_name) prefix 该视图集的路由前缀 viewset 视图集 base_name 路由名称的前缀 如上述代码会形成的路由如下: ^books/$ name: book-list ^books/{pk}/$ name: book-detail 2)添加路由数据 可以有两种方式: urlpatterns = [ ... ] urlpatterns += router.urls 或 urlpatterns = [ ... url(r'^', include(router.urls)) ] 在views.py中操作完视图函数后

filters和scope在ElasticSearch Faceting模块的应用

喜你入骨 提交于 2019-12-31 03:51:12
filters和scope在ElasticSearch Faceting模块的应用 使用ElasticSearch的Facet功能时,有一些关键点需要记住。首先,faceting的结果只会基于查询结果。如果用户在查询命令中使用了filters,那么filters不会对Facet用来的统计计算的文档产生影响。另一个关键点就是scope属性,该属性可以扩展Facet用来统计计算的文档范围。接下来直接看样例。 样例数据 在回忆queries,filters,facets工作原理的同时,我们来开始新内容的学习。首先往books索引中添加一些文档,命令如下: curl -XPUT 'localhost:9200/books/book/1' -d '{ "id":"1", "title":"Test book 1", "category":"book", "price":29.99 }' curl -XPUT 'localhost:9200/books/book/2' -d '{ "id":"2", "title":"Test book 2", "category":"book", "price":39.99 }' curl -XPUT 'localhost:9200/books/book/3' -d '{ "id":"3", "title":"Test comic 1", "category

追加xml文档

陌路散爱 提交于 2019-12-27 14:05:04
实现代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.IO; namespace _04追加XML文档 { class Program { static void Main(string[] args) { //1)创建xml文档对象\ XmlDocument doc = new XmlDocument(); XmlElement books; if (File.Exists("Books.xml")) { //如果文件存在 doc.Load("Books.xml"); //获取根节点 books = doc.DocumentElement; } else//如果文件不存在 { //创建第一行 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(dec); //创建第一行 books = doc.CreateElement("Books"); doc.AppendChild(books); } //5

爬虫 获取网站所有书籍名称

家住魔仙堡 提交于 2019-12-27 05:19:31
import pymysql import requests from lxml import etree def get_books ( ) : url = "http://www.yangxin.wang/" # 获取url中的内容 response = requests.get ( url ) html_content = response.text # 使用xpath进行内容解析 html = etree.HTML ( html_content ) # 根据规则提取内容 book_all = [ ] for i in range ( 1,7 ) : books = html.xpath ( "/html/body/div[1]/div[1]/div[1]/div[{}]/div[2]/ul/li" .format ( i )) # print(len(books)) # print(type(books)) book_all.append ( books ) print ( book_all ) # 存入数据库 dbParmas = { 'host' : '127.0.0.1' , 'user' : 'root' , 'password' : '123' , 'db' : 'film' , 'port' : 3306, 'charset' : 'utf8' } conn =

XML(可扩展的标记语言 HTML)创建

丶灬走出姿态 提交于 2019-12-27 03:00:39
1. 创建步骤 XML:存储数据 创建XML文件注意:XML是严格区分大小写、成对出现的 元素:所有的内容都是元素)(Element) 节点:标签就是节点(Node) XML文档有且只能有一个根节点 2. 代码实现 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace _02创建XML文件1 { class Program { static void Main(string[] args) { //1、引用命名空间 //2、创建XML文件对象 XmlDocument doc = new XmlDocument(); //3/创建第一行表述信息,,并添加在doc文档中。 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null); doc.AppendChild(dec); //4、添加根节点 XmlElement books = doc.CreateElement("Books"); doc.AppendChild(books); //5、给节点Books创建节点

ASP.NET MVC5(四):数据注解和验证

被刻印的时光 ゝ 提交于 2019-12-26 17:25:39
前言   用户输入验证的工作,不仅要在客户端浏览器中执行,还要在服务端执行。主要原因是客户端验证会对输入数据给出即时反馈,提高用户体验;服务器端验证,主要是因为不能完全信任用户提供的数据。ASP.NET MVC框架提供了强大的验证组件帮助我们处理这些繁杂的问题。 数据验证 验证注解的使用   验证注解特性定义在命名空间System.ComponentModel.DataAnnotations中,它们提供了服务器端验证的功能,当在模型的属性上使用时,框架也支持客户端验证。常用特性简介: Required 当属性值为null或者空时,将引发一个验证错误,可以理解为若添加了Required特性,则此项为必填项。 StringLength 限定字符串长度。 RegularExpression 使用正则表达式验证输入的字符串是否符合格式要求。 Range 用来指定输入数值来的最小值和最大值。 Compare 用来判断两个属性是否拥有相同的值。例如,确保两次输入的密码相同。 Remote 利用服务器端的回调函数执行客户端的逻辑验证。 下面,通过一个简单的示例来讲解这些特性的使用方法。 假设现在我们开发一套图书管理系统,在Models文件夹中创建Book类,用来保存书籍的基本信息。 public class Book { public int Id { get; set; } public

mongodb聚合管道用法

大兔子大兔子 提交于 2019-12-25 06:52:46
基本用法 db.collection.aggregate( [ { <stage> }, ... ] ) stage如下 名称 描述 $addFields 将新的字段添加到文档中,输出的文档包含已经存在的字段和新加入的字段 $bucket 根据指定的表达式和存储区边界将传入文档分组到称为buckets的组中。 $bucketAuto 根据指定的表达式将传入文档分类到特定数量的组(称为buckets)。存储区边界自动确定,试图将文档均匀分布到指定数量的buckets中。 $collStats 返回有关集合或视图的统计信息。 $count 返回聚合管道的计数 $currentOp 返回有关MongoDB部署的活动和/或休眠操作的信息 $facet 在同一组输入文档中的单个阶段内处理多个聚合流水线。支持创建多方面的聚合,能够在单个阶段中跨多个维度或方面表征数据。 $geoNear 根据地理空间点的接近度返回有序的文档流。包含地理空间数据的$ match,$ sort和$ limit功能。输出文件包含一个额外的距离字段,并可包含位置标识符字段。 $graphLookup 对集合执行递归搜索。为每个输出文档添加一个新的数组字段,其中包含该文档的递归搜索的遍历结果 $group 按指定的标识符表达式输入文档,并将累加器表达式(如果指定)应用于每个组。消耗所有输入文档并为每个不同的组输出一个文档

java第六次作业

只愿长相守 提交于 2019-12-24 01:07:48
(一)学习总结 1.用思维导图对本周的学习内容进行总结。 2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。可使用printStackTrace 和getMessage方法了解异常发生的情况。阅读下面的程序,说明printStackTrace方法和getMessage方法的输出结果分别是什么?并分析异常的传播过程。 public class PrintExceptionStack { public static void main( String args[] ) { try { method1(); } catch ( Exception e ) { System.err.println( e.getMessage() + "\n" ); e.printStackTrace(); } } public static void method1() throws Exception { method2(); } public static void method2() throws Exception { method3(); } public static void method3() throws Exception { throw new Exception( "Exception thrown in method3" ); } }

JAVA第六次作业

风格不统一 提交于 2019-12-23 19:30:13
(一)学习总结 1.用思维导图对本周的学习内容进行总结。 2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。可使用printStackTrace 和getMessage方法了解异常发生的情况。阅读下面的程序,说明printStackTrace方法和getMessage 方法的输出结果分别是什么?并分析异常的传播过程。 public class PrintExceptionStack { public static void main( String args[] ) { try { method1(); } catch ( Exception e ) { System.err.println( e.getMessage() + "\n" ); e.printStackTrace(); } } public static void method1() throws Exception { method2(); } public static void method2() throws Exception { method3(); } public static void method3() throws Exception { throw new Exception( "Exception thrown in method3" ); } } 运行结果:

数据库记录数据

喜欢而已 提交于 2019-12-22 22:32:42
在很多异常情况下,比如高并发、网络糟糕的时候,数据库里偶尔会出现重复的记录。 假如现在有一张书籍表,结构类似这样 +----+--------------+ | id | name | +----+--------------+ | 1 | 世界简史 | +----+--------------+ 在异常情况下,可能会出现下面这样的记录 +----+--------------+ | id | name | +----+--------------+ | 1 | 世界简史 | | 2 | 人类简史 | | 3 | 人类简史 | +----+--------------+ 但是,想了想,自己在处理相关数据的时候也加了判重的相关逻辑,比如,新增时当图书 name 相同时,会提示图书重复而返回。 初次遇到这个情况的时候,感觉有点摸不着头脑,后面想了想,还是理清了,其实这和数据库的事务隔离级别有一定关系。 先简单说下数据库事务的 4 个隔离级别,然后重现下上述问题,最后说说解决办法。 1 数据库事务的 4 个隔离级别 1.1 未提交读 顾名思义,当事务隔离级别处于这个设置的时候,不同事务能读取其它事务中未提交的数据。 便于说明,我开了两个客户端(A 以及 B),并设置各自的隔离级别为未提交读。(并没有全局设置) 设置隔离级别命令 SET [SESSION | GLOBAL]