实体 实体
出版社 category
作者 tag
文章

先学习一下基础的增删查改

django orm增删改查: https://www.cnblogs.com/iiiiiher/articles/8870906.html


  1. ## 增加
  2. - 方法1:
  3. People.objects.create(usernmae='maotai',age=22);
  4. - 方法2:
  5. p = People()
  6. p.name = "maomao"
  7. p.age = 23
  8. p.save()
  9. ## 更新
  10. ## 查询: crud,重点是查询
  11. - 查询所有列
  12. People.objects.all()
  13. [obj,obj2]
  14. - 查询某几列
  15. People.objects.all().values("id","username")
  16. [{name:maotai,age:22},{name:maomao,age:22}]
  17. People.objects.all().values_list("id","username")
  18. [(1, 'maotai'), (2, 'maomai')]
  19. People.objects.all()
  20. <QuerySet [<People: name: maotai, age: 22>, <People: name: maomai, age: 23>, <People: name: maodou, age: 24>]>
  21. People.objects.all().values('id','username')
  22. <QuerySet [{'id': 1, 'username': 'maotai'}, {'id': 2, 'username': 'maomai'}, {'id': 3, 'username': 'maodou'}]>
  23. People.objects.all().values_list('id','username')
  24. <QuerySet [(1, 'maotai'), (2, 'maomai'), (3, 'maodou')]>
  25. ## 命令行查看真实sql
  26. print(People.objects.all().query)
  1. from django.shortcuts import render,HttpResponse
  2. # Create your views here.
  3. from app01.models import *
  4. def index(request):
  5. return render(request,"index.html")
  6. def addbook(request):
  7. # b=Book(name="python基础",price=99,author="mao",pub_date="2017-12-12")
  8. # b.save()
  9. Book.objects.create(name="linux",price=78,author="maotai",pub_date="2016-12-12")
  10. #Book.objects.create(**dic)
  11. return HttpResponse("添加成功")
  12. def update(request):
  13. Book.objects.filter(author="mao").update(price=999)
  14. # b=Book.objects.get(author="maotai")
  15. # b.price=120
  16. # b.save()
  17. # print(b)#<QuerySet [<Book: Book object>]>
  18. # print(type(b))
  19. return HttpResponse("修改成功!")
  20. def delete(req):
  21. Book.objects.filter(author="maotai").delete()
  22. return HttpResponse("success")
  23. def select(req):
  24. # book_list=Book.objects.all()
  25. # print(book_list)
  26. # print(book_list[0])#Book object
  27. # book_list = Book.objects.filter(id=2)
  28. # book_list = Book.objects.all()[::2]
  29. # book_list = Book.objects.all()[::-1]
  30. # book_list = Book.objects.first()
  31. # book_list = Book.objects.last()
  32. # book_list = Book.objects.get(id=2)#只能取出一条记录时才不报错
  33. # ret1=Book.objects.filter(author="maotai").values("name")
  34. # ret2=Book.objects.filter(author="mao").values_list("name","price")
  35. # book_list=Book.objects.exclude(author="mao").values("name","price")
  36. # print(ret1)
  37. # print(ret2)
  38. # book_list= Book.objects.all().values("name").distinct()
  39. # book_count= Book.objects.all().values("name").distinct().count()
  40. # print(book_count)
  41. #万能的 __
  42. # book_list=Book.objects.filter(price__gt=50).values("name","price")
  43. book_list=Book.objects.filter(name__contains="P").values_list("name","price")
  44. return render(req,"index.html",{"book_list":book_list})

终极吐血整理版--2018年4月23日 17:56:27

实体 实体
出版社 category
作者 tag
文章
  1. 一对多
  2. 创建
  3. 2种方法
  4. 查询
  5. 1,python这本书对应的出版社的名字
  6. 2,邮电出版社出版的所有书
  7. 多对多
  8. 创建(目的创建bookauthor关联关系)
  9. book_obj.publish # 这本书对应的出版社,对象
  10. book_obj.author # 这个书的作者集合, querysetset
  11. book_obj.objects.all()
  12. book_obj.objects.add(*author_obj)
  13. 查询
  14. 1,通author找出他的book: 龟叔写的书找出来
  15. 2,python这本书的作者
  16. -
  17. 1, 一对多:
  18. 1, python这本书对应的出版社的名字
  19. Book.objects.filter(name="python").values('publish__name')
  20. Publish.objects.filter(book__name="python").values('name')
  21. 2, 邮电出版社出版的所有书
  22. print(Publish.objects.filter(name="邮电出版社").values('book__name'))
  23. print(Book.objects.filter(publish__name="邮电出版社").values('name'))
  24. -
  25. 2, 多对多查询
  26. 1,通author找出他的book: 龟叔写的书找出来
  27. print(Book.objects.filter(author__name="龟叔"))
  28. print(Author.objects.filter(name="龟叔").values('book__name'))
  29. 2,python这本书的作者
  30. print(Book.objects.filter(name="python").values('author__name'))
  31. print(Author.objects.filter(book__name="python").values('name'))

聚合查询和分组查询

  1. 聚合:
  2. from django.db.models import Avg, Max, Min, Sum, Count
  3. -
  4. print(Book.objects.aggregate(Min('price')))
  5. print(Book.objects.aggregate(Sum('price')))
  6. print(Book.objects.aggregate(Avg('price')))
  7. 龟叔出的书的价格总和
  8. print(Book.objects.filter(author__name="龟叔").aggregate(Sum('price')))
  9. print(Book.objects.filter(author__name="龟叔").aggregate(guishu_money = Sum('price')))
  10. -
  11. 龟叔出了几本书?
  12. print(Book.objects.filter(author__name="龟叔").aggregate(Count('name')))
  13. -
  14. 分组聚合:
  15. 每个作者的出的书的价格和.
  16. print(Book.objects.all().values("author__name").annotate(Sum("price")))
  17. print(Book.objects.values("author__name").annotate(Sum("price"))) #Book.objects.values分组,聚合
  18. # <QuerySet [{'author__name': None, 'price__sum': 108}, {'author__name': '林纳斯', 'price__sum': 89}, {'author__name': '毛台', 'price__sum': 89}, {'author__name': '龟叔', 'price__sum': 188}]>
  19. -
  20. SELECT
  21. "app03_author"."name",
  22. SUM("app03_book"."price") AS "price__sum"
  23. FROM
  24. "app03_book"
  25. LEFT OUTER JOIN "app03_book_author" ON (
  26. "app03_book"."id" = "app03_book_author"."book_id"
  27. )
  28. LEFT OUTER JOIN "app03_author" ON (
  29. "app03_book_author"."author_id" = "app03_author"."id"
  30. )
  31. GROUP BY
  32. "app03_author"."name"
  33. LIMIT 21;
  34. 查各个出版社出版的最便宜的书的价格(分组和聚合不一定用在复合查询)
  35. print(Publish.objects.values('name').annotate(Min("book__price")))
  36. print(Publish.objects.values('name').annotateabc=Min("book__price")))

F查询和Q查询

  1. - F/Q 且,或,非关系查询
  2. from django.db.models import F,Q
  3. 1, 逗号: 且的关系
  4. print(Book.objects.get(name="python", price=77))
  5. 2, F查询: 每本书price+10
  6. # Book.objects.all().update(price=price+10) #这种是错误的
  7. Book.objects.all().update(price=F('price') + 10)
  8. 3, Q查询: 或的关系
  9. print(Book.objects.filter(Q(name='go') | Q(price=109)).values('name', 'price'))
  10. 4, ~: 非的关系
  11. print(Book.objects.filter(Q(name='go') | ~Q(price=109)).values('name', 'price'))
  12. 5,__contains: 包含关系
  13. print(Book.objects.filter(Q(name__contains='go')).values('name', 'price'))

queryset的特性([缓存]惰性机制)

  1. queryset缓存:
  2. 1,只有调用结果时,才会执行sql
  3. res = Book.objects.all() # 可以理解为一堆sql
  4. print(res) # 此时才会执行sql
  5. 2,queryset具备缓存特性,
  6. res = Book.objects.all()
  7. for i in res: #第一次去执行sql,得到结果缓存
  8. print(i)
  9. print("*"*100)#第二次直接从缓存中取出数据
  10. for i in res:
  11. print(i)
  12. 3,缓存带来的危害, 中途遇到更新时,无法获取到最新值.
  13. res = Book.objects.all()
  14. for i in res:
  15. print(i.price) # 打印原价
  16. Book.objects.all().update(price=200)
  17. for i in res:
  18. print(i.price) # 更新原价
  19. 4,加入只想判断结果res.exists()
  20. res = Book.objects.filter(price=100)
  21. if res.exists(): #不会将一坨数据扔进缓存
  22. print('ok')
  23. 5.如果结果非常巨大(返回迭代器)
  24. objs = Book.objects.all().iterator()
  25. 注: 迭代器只允许迭代一次.
  26. 可迭代
  27. # print(objs[1])
  28. # print(objs[1:4])
  29. # print(objs[::-1])
  30. 可切片
  31. -

models操作

参考

  1. 思路:
  2. publish插数据
  3. book插数据
  4. author插数据
  5. book_author插数据
  6. 调用外键: Book.publish # 这本书对应出版社的一条记录(对象)
  7. 调用多对多键: Book.author # 这本书绑定关系的作者的记录(queryset)
  8. book_obj.author.all()
  9. book_obj.author.add(author_obj)
  10. book_obj.author.remove(author_obj)
  11. author_obj = Author.objects.all()
  12. book_obj.author.add(*author_obj)
  13. 通过book找它的author:
  14. python这本书的作者
  15. Author.objects.filter(book__name="python")
  16. 通过author找它的book
  17. 龟叔出过的书的name+price(用系统自带的manytomany方法)
  18. Book.objects.filter(author__name="龟叔").values('name', 'price')
  19. 自定义book_author表:
  20. 查出id=2bookauthor:(两张表借助第三张表book_author取数据)
  21. 方法1:
  22. book_obj = Book.objects.get(id=2)
  23. book_obj.book_author_set.all() # book_author的queryset对象
  24. print(book_obj.book_author_set.all()[0].author) # 查出作者.
  25. 方法2:
  26. Book.objects.filter(book_author__author_id__name="龟叔").values('name','price')
  1. 多对多:
  2. 创建多对多关系:
  3. author = models.ManytoManyFiled("Author")
  4. book对象它的所有的关联作者: obj = book_obj.authors.all()
  5. 绑定多对多的关系: obj.add(*QuerySet)
  6. obj.add(author_obj)
  7. 如果想向第三张表插入值的方式绑定:
  8. 手动创建第三张表
  9. class Book_Author(models.Model):
  10. book_id = models.ForeignKey(Book, on_delete=models.CASCADE)
  11. author_id = models.ForeignKey(Author, on_delete=models.CASCADE)
  12. Book_Author.objects.create(book_id=2,author_id=3)
  13. 掌握: 通过filter value(双下划线)实现多对多的关联查询
  14. 龟叔出过的书的name+price(用系统自带的manytomany方法)
  15. Book.objects.filter(author__name="龟叔").values('name', 'price')
  1. 1.聚合
  2. 2.分组
  3. 3.F查询和Q查询
  1. 多表查询:
  2. 一对多
  3. 1,sql
  4. 2,set
  5. 3,__
  6. 图书---2种-->出版社
  7. 图书<--1种--出版社
  8. 多对多
  9. 1,自动
  10. 操作第三张表, 为第三张表添加记录.
  11. 调用外键: Book.publish # 这本书对应出版社的一条记录(对象)
  12. 调用多对多键: Book.author # 这本书绑定关系的作者的记录(对象)
  13. 2,手动
  14. 通过book找它的author
  15. 通过author找它的book
  16. book添加author记录
  17. 即手动添加book_author关系
  18. 1,取出一本书 book_obj
  19. 2,取出一个作者author_obj
  20. 3,book_obj.add(author_obj)
  21. F查询和Q查询
  1. 1.创建
  2. 1,p = People
  3. p.name = "mt"
  4. p.save()
  5. 2,People.objects.create(name="mt")
  6. 2.查询(重点****)
  7. def home(request):
  8. book_list = Book.objects.filter(id=1)
  9. book_list = Book.objects.exclude(author='maotai').values('name', 'price')
  10. # filter/all 取出的是一个queryset
  11. book_list = Book.objects.all()
  12. book_list = Book.objects.all()[::2]
  13. book_list = Book.objects.all()[::-1]
  14. # first/last get取到的是一个实例
  15. book_list = Book.objects.first()
  16. book_list = Book.objects.last()
  17. book_list = Book.objects.get(id=1) # 结果超过一个后会报错
  18. res = Book.objects.filter(author='maotai').values("name") # 结果是字典形式,kv
  19. res = Book.objects.filter(author='maotai').values_list("name","price") # 结果是列表形式,好像只有key
  20. # select name from book where author='maotai';
  21. book_list = Book.objects.filter(author='maotai').values("name").distinct() # filter某些字段时, 去重
  22. book_count = Book.objects.all().values("name").count() # 记录条数
  23. # 模糊匹配
  24. book_list = Book.objects.filter(name__contains="mao").values_list("name","price")
  25. book_list = Book.objects.filter(id__gt=5).values_list('name','price')
  26. 3,删除
  27. book_list = Book.objects.exclude(author='maotai').delete()
  28. - 方法小结:
  29. all()&filter()
  30. queryset.update()
  31. queryset.delete()
  32. first/last&get
  33. obj.save()
  1. 思路:
  2. 创建publish出版社/图书表(一对多)---添加图书的两种方法(主要是给publish_id赋值)
  3. 1,
  4. Book.objects.create(name="流畅的python", price=89, pub_date="2017-06-06", publish_id=3)
  5. 2,
  6. publish_obj = Publish.objects.filter(name="人民出版社")[0]
  7. Book.objects.create(name="go action", price=22, pub_date="2018-04-04", publish=publish_obj)
  8. -
  9. 1. 通过bookpublish消息?
  10. 1,def __str__
  11. 2,查询publish的其他字段
  12. 2. 查看人民出版社出版过哪些书?
  13. 1,方法1: 正向
  14. 2,方法2: 逆向查: 利用django自带的book_set
  15. 多表操作(一对多):
  16. 1,正向查询
  17. pub_obj = Publish.objects.get(name="人民出版社")
  18. res = Book.objects.filter(publish=pub_obj).values('name', 'price')
  19. 2,逆向查询,利用django提供的book_set
  20. pub_obj = Publish.objects.filter(name="人民出版社")[0]
  21. print(pub_obj.book_set.all())
  22. print(type(pub_obj.book_set.all()))
  23. -
  24. 外键两种写法:
  25. 1,外键加引号
  26. publish = models.ForeignKey("publish", on_delete=models.CASCADE, verbose_name="出版社")
  27. 2,外键不加引号.(外键model需要先定义)
  28. publish = models.ForeignKey(Publish, on_delete=models.CASCADE, verbose_name="出版社")
  29. 通过__方法查找结果:
  30. 1,逆向查找: 外键__名称
  31. - 查出人民出版社出版的图书
  32. res = Book.objects.filter(publish__name="人民出版社").values('name', 'price') # 这里的publish是外键名
  33. print("3,通过__方法查找结果: ", res)
  34. print("-" * 50)
  35. 2,正向查找: 主表__name
  36. 2.1
  37. # python这本书的出版社名字
  38. print(Publish.objects.filter(book__name="python").values('name')) # 这里的book是表名, 这里name是publish表里的字段name
  39. return HttpResponse("查询完毕, 结果请查看console")
  40. 2.2通过逆向查
  41. res = Book.objects.filter(name="python").values("publish__name") # select publish__name
  42. 栗子
  43. 思路: 一对多: 这个出版社出版过哪些书? -- 这本书是哪个出版社出版的?
  44. 多对多: id=3的作者的信息
  45. 1. 人民出版社出版的图书的名字
  46. 1.1
  47. pub_obj = Publish.objects.get(name="人民出版社")
  48. res = Book.objects.filter(publish=pub_obj).values('name', 'price')
  49. 1.2
  50. pub_obj = Publish.objects.filter(name="人民出版社")[0]
  51. print(pub_obj.book_set.all())
  52. 1.3
  53. res = Book.objects.filter(publish__name="人民出版社").values('name', 'price')
  54. 2. python这本书的出版社名字
  55. 2.1逆向(主表名__)
  56. res = Publish.objects.filter(book__name="python").values('name')
  57. 2.2正向(外键名__)
  58. res = Book.objects.filter(name="python").values("publish__name")
  59. 3. 在北京出版社出版的书
  60. Book.objects.filter(publish__city__="北京").values('name')
  61. 4. 2017年上半年出的书的出版社名字
  62. res = Book.objects.filter(pub_date__lt="2017-07-01", pub_date__gt="2017-01-01").values('publish_name')
  63. 5, 多对多的关系, id=3的所有作者信息
  64. book_obj = Book.objects.get(id=3)
  65. book_obj.author.all()
  66. print(type(book_obj.author.all()))

数据模拟:

  1. publish
  2. author
  3. book
  4. Foreign_key: publish
  5. ManyToMany: author
  6. 核心点:
  7. 一对多创建关系
  8. 一对多查询
  1. publish:
  2. 1 人民出版社 北京
  3. 2 邮电出版社 西安
  4. 3 机械出版社 上海
  5. book:
  6. id name price pub_date publish
  7. 1 python 89 2017-01-07 1
  8. 2 go 99 2017-04-01 2
  9. 3 java 39 2017-06-01 3
  10. 4 ios 69 2017-12.24 3
  11. Author:
  12. id name age
  13. 1 龟叔 17
  14. 2 林纳斯 20
  15. 3 毛台 25
  16. 1 Jeff 42
  17. book_author:
  18. id book_id author_id
  19. 1 1 1
  20. 2 1 2
  21. 3 2 3
  22. 4 2 3
  1. - models
  2. class Publish(models.Model):
  3. name = models.CharField(max_length=40, verbose_name="出版社")
  4. city = models.CharField(max_length=40, verbose_name="出版社所在城市")
  5. def __str__(self):
  6. return self.name
  7. class Meta:
  8. verbose_name = "出版社"
  9. verbose_name_plural = verbose_name
  10. class Author(models.Model):
  11. name = models.CharField(max_length=40, verbose_name="作者")
  12. age = models.IntegerField(default=17, verbose_name="年龄")
  13. def __str__(self):
  14. return self.name
  15. class Meta:
  16. verbose_name = "作者"
  17. verbose_name_plural = verbose_name
  18. class Book(models.Model):
  19. name = models.CharField(max_length=40, verbose_name="书名")
  20. price = models.IntegerField(default=99, verbose_name="价格")
  21. pub_date = models.DateField(verbose_name="出版时间")
  22. publish = models.ForeignKey(Publish, on_delete=models.CASCADE, verbose_name="出版社")
  23. # author = models.ManyToManyField(Author, verbose_name="作者")
  24. def __str__(self):
  25. return self.name
  26. class Meta:
  27. verbose_name = "图书"
  28. verbose_name_plural = verbose_name
  29. class Book_Author(models.Model):
  30. book_id = models.ForeignKey(Book, on_delete=models.CASCADE)
  31. author_id = models.ForeignKey(Author, on_delete=models.CASCADE)
  1. - views
  2. def addbook(request):
  3. # 1.创建出版社
  4. # Publish.objects.create(name="人民出版社",city="北京")
  5. #
  6. # p = Publish()
  7. # p.name = "邮电出版社"
  8. # p.city = "西安"
  9. # p.save()
  10. #
  11. # p2 = Publish(name="机械出版社")
  12. # p2.city = "上海"
  13. # p2.save()
  14. #
  15. # print(Publish.objects.all())
  16. # 2,创建图书
  17. # Book.objects.create(name="python", price=89,pub_date='2017-01-07', publish_id=1)
  18. # Book.objects.create(name="go", price=99, pub_date='2017-04-01',publish_id=2)
  19. # Book.objects.create(name="ios", price=39,pub_date='2017-06-01', publish_id=3)
  20. # Book.objects.create(name="java", price=69, pub_date='2017-12-24',publish_id=3)
  21. # 3,创建作者
  22. # Author.objects.create(name="龟叔",age=17)
  23. # Author.objects.create(name="林纳斯",age=20)
  24. # Author.objects.create(name="毛台",age=25)
  25. # Author.objects.create(name="Jeff",age=33)
  26. # 龟叔还写了ios
  27. # book_obj = Book.objects.get(name="ios")
  28. # author_obj = Author.objects.get(id=1)
  29. # print(book_obj.author.all()) # ios谁写的?
  30. # # book_obj.author.add(author_obj)
  31. # 龟叔出过的书
  32. # res = Book.objects.filter(author__name="龟叔").values('name', 'price')
  33. # print(res)
  34. #
  35. # # python这本书谁写的
  36. # res2 = Author.objects.filter(book__name="python")
  37. # print(res2)
  38. #
  39. Book_Author.objects.create(book_id=2,author_id=1)
  40. book_obj = Book.objects.get(id=2)
  41. # book_obj.book_author_set.all() # book_author的queryset对象
  42. print(book_obj.book_author_set.all()[0].author)
  43. Book.objects.filter(book_author__author_id__name="龟叔").values('name','price')
  44. # 创建自定义book_author表
  45. Book.objects.filter(book_author__author__name="alex").values("name","price")
  46. return HttpResponse("结果请查看console")

查看sql

追加扫settings.py

  1. LOGGING = {
  2. 'version': 1,
  3. 'disable_existing_loggers': False,
  4. 'handlers': {
  5. 'console':{
  6. 'level':'DEBUG',
  7. 'class':'logging.StreamHandler',
  8. },
  9. },
  10. 'loggers': {
  11. 'django.db.backends': {
  12. 'handlers': ['console'],
  13. 'propagate': True,
  14. 'level':'DEBUG',
  15. },
  16. }
  17. }

[django]django的orm查询的更多相关文章

  1. Django框架 之 ORM查询操作详解

    Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...

  2. django学习-15.ORM查询方法汇总

    1.前言 django的ORM框架提供的查询数据库表数据的方法很多,不同的方法返回的结果也不太一样,不同方法都有各自对应的使用场景. 主要常用的查询方法个数是13个,按照特点分为这4类: 方法返回值是 ...

  3. Django 源码小剖: Django ORM 查询管理器

    ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...

  4. Django ORM 查询管理器

    Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...

  5. Django之ORM查询复习与cookie

    ORM查询总结: models.Book.objects.filter(**kwargs): querySet [obj1,obj2] models.Book.objects.filter(**kwa ...

  6. Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL

    一    F查询与Q查询: 1 . F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的 ...

  7. Django(ORM查询2)

    day70 ORM训练专题 :http://www.cnblogs.com/liwenzhou/articles/8337352.html 内容回顾     1. ORM         1. ORM ...

  8. django -- ORM查询

    前戏 在我们之前操作ORM中,你也许是启动Django项目,通过地址访问固定的函数,或者在pycharm里的python console里执行,第一种比较麻烦,而且每次都要启动项目,写路由,第二种虽然 ...

  9. Python - Django - ORM 查询方法

    models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...

  10. django orm查询和后端缓存的使用

    django orm 查询 1 字段后(db_column='age') (null=True)#表示数据库里面的该字段数据可以为空 (blank=True)#表示前端表单提交的时候可以为空 (db_ ...

随机推荐

  1. Jquery 网页转换为图片

    /* html2canvas 0.5.0-alpha1 <http://html2canvas.hertzen.com> Copyright (c) 2015 Niklas von Her ...

  2. GitHub----初学习(一)

    刚开始学习GitHub,在这借鉴一下别人的总结,http://youngxhui.github.io/2016/05/03/GitHub-for-Windows%E4%BD%BF%E7%94%A8%E ...

  3. sklearn特征抽取

    特征抽取sklearn.feature_extraction 模块提供了从原始数据如文本,图像等众抽取能够被机器学习算法直接处理的特征向量. 1.特征抽取方法之 Loading Features fr ...

  4. <转>github入门到上传本地项目

    转自 http://www.cnblogs.com/specter45/p/github.html GitHub是基于git实现的代码托管.git是目前最好用的版本控制系统了,非常受欢迎,比之svn更 ...

  5. StarUML2 建模工具全平台破解及license验证简要分析

    破解方法:找到安装目录下的文件:LicenseManagerDomain.js阅读得知,改软件用rsa加密用户信息,换行为用户信息的分隔符修改以下代码,然后打开软件点击菜单栏中的帮助->输入li ...

  6. input type="number"时,maxlength不起作用怎么解决

    最近小颖在做公司的angular项目时,发现当input type="number"时,maxlength不起作用,百度了下解决方式,顺便记录下,以便后期查看嘻嘻 <inpu ...

  7. [Sdoi2016]平凡的骰子

    描述 这是一枚平凡的骰子.它是一个均质凸多面体,表面有n个端点,有f个面,每一面是一个凸多边形,且任意两面不共面.将这枚骰子抛向空中,骰子落地的时候不会发生二次弹跳(这是一种非常理想的情况).你希望知 ...

  8. 搭建IPv4专有网络

    搭建IPv4专有网络 版权归属:阿里云网站   本教程将指引您搭建一个具有IPv4地址块的专有网络,并为专有网络中的ECS实例绑定一个弹性公网IP(EIP)进行公网访问. 步骤一:创建专有网络和交换机 ...

  9. [Windows] 使用SC 命令管理与配置服务

    sc config wuauserv start= demand sc config wuauserv start= disabled

  10. &与&&, |与||区别

    &和|称为短逻辑符,&&及||称为长逻辑符.长逻辑符只比较左边和右边的第一个元素,而短逻辑符会比较所有的 > a<-c(TRUE, FALSE, TRUE, FAL ...