文章目录

  • 1.FBV与CBV
    • 1.1FBV
    • 1.2CBV
  • 2.CBV源码解析
    • 2.1内部源码
  • 3.模板层
    • 3.1模板语法传值
    • 3.2过滤器
      • 1. 统计长度
      • 2.默认值
      • 3.文件大小
      • 4.日期格式
      • 5.切片操作
      • 6.切取字符
      • 7.切取单词
      • 8.移除特定的字符
      • 9.拼接操作
      • 10.加法&加法拼接字符
      • 11.前端转义
      • 12.代码
  • 4.标签
    • 1.for循环
    • 2.if判断
    • 3.for 与 if 混合使用
    • 4.empty
    • 5.for对字典操作
    • 6.with起别名
  • 5.自定义过滤器、标签、inclusion_tag
    • 5.1过滤器
    • 5.2便签
    • 5.3inclusion_tag
  • 6.模板的继承
  • 7.模板的导入
  • 7.模板的导入

文件:链接:
https://pan.baidu.com/s/1dtFp6Y1ght8wma3D96C1jA
提取码:zxn7

1.FBV与CBV

数图函数既即可是函数也可以是类。

1.1FBV

uer(r'^index/', views.index)
def index(request):  HttpRespones('index')

1.2CBV

url(^'login', views.login.as_view())
class login(view):   def get(self, request):        return HttpResponse('hhtml')    def post(self, request):       return HttpResponse('post方法')
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>首页</title></head><body><h1>首页</h1><form action="" method="post"><input type="submit"></form></body></html>
127.0.0.1:8000/app2/long进入首页,点进提交进入
 CBV的特点:能根据不同的请求方式匹配对应的方法执行。

2.CBV源码解析

# 在 引用的urls.py下创建路由
url('^login/', views.Mylogin.as_view()),
# app01 下 views.py
from django.shortcuts import render, HttpResponse
from django.views import View   # 导入 Viewclass Mylogin(View):            def get(self, request):return render(request, 'login.html')def post(self, request):return HttpResponse('post请求')
# templates下login.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="" method="post"><input type="submit">
</form></body>
</html>
函数名/方法名加括号执行优先级最高。
在启动 Django 时就会执行 views.mylogin.as_view()mylogin是类名,类使用.as_view()
.as_view()
要么被@staicmethod修饰的静态方法
要么被@classmethom修饰的类方法
查看源代码
@classonlymethod   # 等同于 @classmethom修饰的类方法
def as_view(cls, **initkwargs):
···
return view
url('^login/', views.mylogin.as_view())
变形为 url('^login/', views.view),
CBV和FBV在路由上本质是一样的,都是路由对应函数内置地址。
在输入127.0.0.1:8000/login时触发 views.view

2.1内部源码

class View(object):http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']******* @classonlymethoddef as_view(cls, **initkwargs):********def view(request, *args, **kwargs):# self = login(**initkwargs)self = cls(**initkwargs)if hasattr(self, 'get') and not hasattr(self, 'head'):*******return self.dispatch(request, *args, **kwargs)*********return viewdef dispatch(self, request, *args, **kwargs):# 获取当前的请求方式转小写             八个默认的请求if request.method.lower() in self.http_method_names:"""getattr 反射:通过字符串来操作对象的属性或者方法getattr(自己写的类对象,'小写的请求方式get/post',当找不这个小写的请求时才使用第三个参数)handler = 自己写的类里面的方法"""handler = getattr(self, request.method.lower(), self.http_method_not_allowed)*******# 自动调用方法return handler(request, *args, **kwargs)
不要修改源码,出现bug难查找。
在查看源码的时候一定要时刻提醒自己面对对象属性方法的查找顺序。
在查看源码时看到self.东西,一定要问自己当前这个self是谁
1. 先从自己的对象中找
2. 再去产生对象的类中查找
3. 父类中查找

3.模板层

3.1模板语法传值

模板语法的书写方法:
{{  }}: 变量相关
{%  %}: 逻辑相关 for循环等
基本的数据类型都可以传递。模板语法内部会自动判断当前的表量名(函数名, 类名)是否可以加括号调用,
如果可以就会自定加括号执行。传递函数名会自动加括号进行调用,传递的时返回值。
但模板语法不支持函数传递额外的参数,如果函数带有参数则不会执行这条模板语法语句。传递类名的时候也会自动加括号(实例化)
django模板语法的取值时固定的格式只能采用 句点符 .
即可以点键也可以点索引,还可以两者混合使用。
url('^index/', views.index)
from django.shortcuts import render, HttpResponse
from django.views import Viewclass mylogin(View):def get(self, request):return render(request, 'login.html')def post(self, request):return HttpResponse('post请求')def index(request):# 模板语法可以传入后端Python数据类型n = 123f = 11.11s = 'kid'l = ['qz', 'qq']t = (11, 22, 33)d = {'name': 'kid', 'kid': 18}b = Truese = {'aa', 'bb'}dir1 = {'name': ['you', {'小名': ['二狗子', '狗剩']}]}# 函数def func1():passdef func2():print('我是func2')return '我是func2'class Myclass1(object):def get_self(self):return 'self'@staticmethod  # 静态方法,不传递self参数def get_func():return 'func'@classmethod  # 类使用属性方法,将自己做第一个参数进行传递def get_class(cls):return 'class'obj = Myclass1()# 对象被展示到html页面中就类似于执行了打印操作也就触发了__str__方法class Myclass2(object):def __str__(self):return 'Myclass2'# return render(request, {}) 一个个传值return render(request,'index.html', locals())
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>模板语法传值</title>
</head>
<body><p>{{ n }}</p><p>{{ f }}</p><p>{{ s }}</p><p>{{ l }}</p><p>{{ t }}</p><p>{{ d }}</p><p>{{ b }}</p><p>{{ se }}</p><p>func1:{{ func1 }}</p><p>func2:{{ func2 }}</p><P>Myclass1:{{ Myclass1 }}</P><P>obj:{{ obj }}</P><p>{{ obj.get_self }}</p><p>{{ obj.get_func}}</p><p>{{ obj.get_class }}</p><p>{{ Myclass2 }}</p><p>{{ dir1.name}}</p><p>{{ dir1.name.0}}</p><p>{{ dir1.name.1}}</p><p>{{ dir1.name.1.小名}}</p><p>{{ dir1.name.1.小名.0}}</p><p>{{ dir1.name.1.小名.1}}</p>
</body>
</html>
123
11.11
{'bb', 'aa'}
['qz', 'qq']
(11, 22, 33)
{'name': 'kid', 'kid': 18}
True
{'bb', 'aa'}
func1:None
func2:我是func2
Myclass1:<app01.views.index.<locals>.Myclass1 object at 0x000002493D5E0080>
obj:<app01.views.index.<locals>.Myclass1 object at 0x000002493D551390>
self
func
class
Myclass2
['you', {'小名': ['二狗子', '狗剩']}]
you
{'小名': ['二狗子', '狗剩']}
['二狗子', '狗剩']
二狗子
狗剩

3.2过滤器

过滤器类似于模板语法内置的内置方法。
Django内置有60多个过滤器。过滤器的基本语法
{{ 数据|过滤器:参数}}
自定义的过滤器的参数最多就2个
常见过滤器:
1. length  统计长度 (内部源码len())
2. default 默认值 第一个数据布尔值为True就展示第一个数据的值,否则就展示冒号后面的值。
3. filesizeformat 文件大小,将字节进行对应的单位换算。
4. date    日期格式。
5. slice   切片操作, 支持步长。
6. truncatechars 切取字符,三个点就占三个字符,设置大于3,不然就看到三个点。
7. truncatewords 按空格切取单词,不不包含三个点。
8. cut 移除特定的字符
9. join 拼接操作
10. add 加法
11. safe 转义
1. 统计长度
length  统计长度 (内部源码len())。
s = 'kid'<p>长度统计: {{ s|length }} </p>   # 统计长度:3
2.默认值
default 默认值 第一个数据布尔值为True就展示第一个数据的值,否则就展示冒号后面的值。
d = {'name': 'kid', 'kid': 18}<p>  默认值:{{ d|default:'没有值' }} </p> # {'name': 'kid', 'kid': 18},设置d=False 显示的就是'没有值'。
# 默认值:{'name': 'kid', 'kid': 18}
3.文件大小
filesizeformat 文件大小,将字节进行对应的单位换算。
file_size1 = 1000000
file_size2 = 56565265<p>{{ file_size1|filesizeformat }}</p>
<p>{{ file_size2|filesizeformat }}</p># 976.6 KB
# 53.9 MB
4.日期格式
import datetime
current_time = datetime.datetime.now()<p>现在时间:{{ current_time }}</p>
<p>格式设置:{{ current_time|date:'Y-m-d H:i:s' }}</p># 现在时间:Aug. 15, 2021, 8:08 p.m.
# 格式设置:2021-08-15 20:08:23
5.切片操作
slice切片操作, 支持步长。
l = ['qz', 'qq', 'cc', 'dd']<p>切片操作:{{ l|slice:'0:3:2' }}</p># 切片操作:['qz', 'cc']
6.切取字符
truncatechars 切取字符,三个点就占三个字符,设置大于3,不然就看到三个点。
info = "abcdefghijklmnopqrst"<p>窃取操作:{{ info|truncatechars:3 }}</p>
<p>窃取操作:{{ info|truncatechars:6 }}</p># 切取操作:...
# 切取操作:abc...
7.切取单词
truncatewords 按空格切取单词,不不包含三个点。
egl = 'ni hao a wo cao lei'<p>切取单词:{{ egl|truncatewords:3 }}</p># 切取单词:ni hao a ...
8.移除特定的字符
cut 移除特定的字符
egl = 'ni hao a wo cao lei'<p>移除特定字符:{{ egl|cut:' ' }}</p>
<p>移除特定字符:{{ egl|cut:'cao' }}</p># 移除特定字符:nihaoawocaolei
# 移除特定字符:ni hao a wo lei
9.拼接操作
join 拼接操作
egl = 'ni hao a wo cao lei'
l = ['qz', 'qq', 'cc', 'dd']<p>拼接操作:{{ egl|join:'---' }}</p>
<p>拼接操作:{{ l|join:'---' }}</p># 拼接操作:n---i--- ---h---a---o--- ---a--- ---w---o--- ---c---a---o--- ---l---e---i
# 拼接操作:qz---qq---cc---dd
10.加法&加法拼接字符
add 数字相加, 字符串拼接,否则 ' '空字符串。
s2 = 'asd'
s3 = 'qwe'<p>加法运算:{{ n|add:100 }}</p>
<p>加法拼接:{{ s2|add:s3}}</p># 加法运算:223
# 加法拼接:asdqwe
11.前端转义
让前端执行转义。
h = '<h1>xxx</h1>'<p>前端转义:{{ h|safe }}</p># 前端转义:xxx   (1号标题)
后端转义:
以后在写全栈项目的时候,前端页面不一定要在前端页面书写,
也可以在后端写好,然后传递给前端页面。
from django.utils.safestring import mark_safe
res = mark_safe('<h1>xxx</h1>')<p>转义:{{ res }}</p># 后端转义:xxx   (1号标题)
12.代码
def index(request):# 模板语法可以传入后端Python数据类型n = 123f = 11.11s = 'kid's2 = 'asd's3 = 'qwe'l = ['qz', 'qq', 'cc', 'dd']t = (11, 22, 33)d = {'name': 'kid', 'kid': 18}b = Truese = {'aa', 'bb'}dir1 = {'name': ['you', {'小名': ['二狗子', '狗剩']}]}file_size1 = 1000000file_size2 = 56565265import datetimecurrent_time = datetime.datetime.now()info = "abcdefghijklmnopqrst"egl = 'ni hao a wo cao lei'h = '<h1>xxx</h1>'from django.utils.safestring import mark_saferes = mark_safe('<h1>xxx</h1>')# return render(request, {}) 一个个传值return render(request,'index.html', locals())
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>模板语法传值</title>
</head>
<body><p>统计长度:{{ s|length }}</p><p>默认值:{{ d|default:'没有值' }}</p><p>文件大小:{{ file_size1|filesizeformat }}</p><p>文件大小:{{ file_size2|filesizeformat }}</p><p>现在时间:{{ current_time }}</p><p>格式设置:{{ current_time|date:'Y-m-d H:i:s' }}</p><p>切片操作:{{ l|slice:'0:3:2' }}</p><p>切取操作:{{ info|truncatechars:3 }}</p><p>切取操作:{{ info|truncatechars:6 }}</p><p>切取单词:{{ egl|truncatewords:3 }}</p><p>移除特定字符:{{ egl|cut:' ' }}</p><p>移除特定字符:{{ egl|cut:'cao' }}</p><p>拼接操作:{{ egl|join:'---' }}</p><p>拼接操作:{{ l|join:'---' }}</p><p>加法运算:{{ n|add:100 }}</p><p>加法拼接:{{ s2|add:s3}}</p><p>前端转义:{{ h|safe }}</p><p>后端转义{{ res }}</p>
</body>
</html>

4.标签

1.for循环
lll   = ['aa', 'bb', 'cc', 'dd', 'dd']
{% for foo in lll  %}          <!--for i in lll--><p> {{ foo }} </p>         <!--一个个元素-->
{% endfor %}
# forloop 参数
{% for foo in lll  %}<p> {{ forloop}} </p>
{% endfor %}
{'parentloop': {}, 'counter0': 0, 'counter': 1, 'revcounter': 5, 'revcounter0': 4, 'first': True, 'last': False}{'parentloop': {}, 'counter0': 1, 'counter': 2, 'revcounter': 4, 'revcounter0': 3, 'first': False, 'last': False}{'parentloop': {}, 'counter0': 2, 'counter': 3, 'revcounter': 3, 'revcounter0': 2, 'first': False, 'last': False}{'parentloop': {}, 'counter0': 3, 'counter': 4, 'revcounter': 2, 'revcounter0': 1, 'first': False, 'last': False}{'parentloop': {}, 'counter0': 4, 'counter': 5, 'revcounter': 1, 'revcounter0': 0, 'first': False, 'last': True}统计从0开始         计数                                            第一个为True   最后一个为True
2.if判断
num  = 10
{% if num > 10 %}<p>大于10</p>
{% elif num == 10%}<p>等于10</p>
{% else %}<p>小于10</p>
{% endif %}
3.for 与 if 混合使用
 {% for foo in lll %}{% if forloop.first  %}<p>第一个值</p>{% elif forloop.last%}<p>最后一个值</p>{% else %}<p>{{ foo }}</p>{% endif %}
{% endfor %}
第一个值
bb
cc
dd
最后一个值
4.empty
for循环的可迭代对象为空时执行。
llll = []
{% for foo in llll  %}<p> {{ foo }} </p>
{% endfor %}
<empty><p>null</p>
</empty>
null
5.for对字典操作
dict2 = {'k1': 1, 'k2':2, 'k3': 3}
{% for foo in dict2.keys  %}<p> {{ foo }} </p>
{% endfor %}{% for foo in dict2.values  %}<p> {{ foo }} </p>
{% endfor %}{% for foo in dict2.items  %}<p> {{ foo }} </p>
{% endfor %}
k1
k2
k3
1
2
3
('k1', 1)
('k2', 2)
('k3', 3)
6.with起别名
在with语法内可以通过使用as后面的别名快速的使用到前面复杂的模板语法取值的方式。
一个别名代替一个模板语法取值的语句。
dir1 = {'name': ['you', {'小名': ['二狗子', '狗剩']}]}
<p>{{ dir1.name.1.小名.1}}</p>
{% with dir1.name.1.小名.1 as yourname %}<p>{{ yourname }}</p><p>{{ yourname }}</p><p>{{ yourname }}</p>
{% endwith %}

5.自定义过滤器、标签、inclusion_tag

必须步骤:
1.在应用下创建一个名字叫templatetags文件夹。
2.在该文件夹内创建一个任意名称的.py文件
3.在该py文件内必须写下两个语句from django import templateregister = template.Library()
例:
在app01 下创建templatetags文件夹
在templatetags文件夹创建mytag.py
mytag.py文件内容:from django import template
register = template.Library()

5.1过滤器

n1 = 1
from django import template
register = template.Library()# 自定义过滤器
@register.filter(name='print_hello')
def my_tag():return print('hello')
# 页面使用
<p>自定义的使用:</p><p>{% load mytag %}</p>
<p>{{  n1|mysum:123 }}</p>
124

5.2便签

可以接受任意个参数,参数之间用空格分隔开。
类似于自定义函数。
from django import template
register = template.Library()# 自定义标签
@register.simple_tag(name='plus')
def index(a, b, c, d):return '%s-%s-%s-%s'
{% load mytag %}
<p>{% plus 'k' 'i' 'd' '1'%}</p>
k-i-d-1

5.3inclusion_tag

内部原理:
在页面上调用该方法并且可以传值。
该方法会生成一些数据然后传递一个html页面
之后将渲染好的结果放到调用的位置。
from django import template
register = template.Library()@register.inclusion_tag('lefe_menu.html')
def left(n):data = ['第{}项'.format(i) for i in range(n)]return locals() # 将data传值给lefe_menu.heml页面
# lefe_menu.html,一个局部页面。
<ul>{% for foo in data %}<li>{{ foo }}</li>{% endfor %}
</ul>
<body>{% load mytag %}{% left 5 %}
</body>
当html页面某一个地方需要参数才能够动态的渲染出来,并在在多个页面上都需要使用到该局部,那么将该局部页面作为inclusion_tag形式。

6.模板的继承

很多的网站页面整体都大差不差的相同,只是某一些局部在做变化。
模板继承,选中一个自己想继承的模板页面
{% block centent %}         # centent名字模板内容
{% endblock %}子页面
{% extends 'home.html' %}   # 继承
{% block content %}子页面内容
{% ensdblock %}一般情况下会留有三块可以被修改的区域。
一帮情况下模板页面上划定的区域却多,那么该模板的拓展性就越高,如果太多也没必要。
1. css区域
2. html区域
3. js 区域
每一个子页面都可以有自己独立的css代码html代码js代码。
from django.conf.urls import url
from django.contrib import admin
from app01 import viewsurlpatterns = [# 模板继承url('^home/', views.home),url('^login1/', views.login),url(r'^reg/', views.reg)
]
from django.shortcuts import render, HttpResponsedef home(request):return render(request, 'home.html')def login(request):return render(request, 'login1.html')def reg(request):return render(request, 'reg.html')
<!--home.html-->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script><link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>{% block css %}{% endblock %}</head>
<body>
<nav class="navbar navbar-inverse"><div class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">Brand</a></div><!-- Collect the nav links, forms, and other content for toggling --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li><li><a href="#">Link</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li><li role="separator" class="divider"></li><li><a href="#">One more separated link</a></li></ul></li></ul><form class="navbar-form navbar-left"><div class="form-group"><input type="text" class="form-control" placeholder="Search"></div><button type="submit" class="btn btn-default">Submit</button></form><ul class="nav navbar-nav navbar-right"><li><a href="#">Link</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid -->
</nav><div class="container-fluid"><div class="row"><div class="col-md-3"><div class="list-group"><a href="/home/" class="list-group-item active">首页</a><a href="/login1/" class="list-group-item">登录</a><a href="/reg/" class="list-group-item">注册</a></div></div><div class="col-md-9"><div class="panel panel-prim ary"><div class="panel-heading"><h3 class="panel-title">Panel title</h3></div><div class="panel-body">{% block content %}<div class="jumbotron"><h1>Hello, world!</h1><p>...</p><p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p></div>{% endblock %}</div></div></div></div>
</div>
{% block js %}{% endblock %}
</body>
</html>
<!--reg.html-->{% extends 'home.html' %}{% block css %}<style>h1 {color:red;}</style>{% endblock %}{% block content %}<h1 class="text-center">注册页面</h1><form action=""><p>username: <input type="text" class="form-control"></p><p>password: <input type="text" class="form-control"></p><input type="submit" class="btn btn-success"></form>
{% endblock %}{% block js %}<script>alert('注册')</script>
{% endblock %}
<!--longin1.html-->
{% extends 'home.html' %}{% block css %}<style>h1 {color: greenyellow;}</style>
{% endblock %}{% block content %}<h1 class="text-center">登入页面</h1><form action=""><p>username: <input type="text" class="form-control"></p><p>password: <input type="text" class="form-control"></p><input type="submit" class="btn btn-danger"></form>
{% endblock %}{% block js %}<script>alert('登入')</script>
{% endblock %}

7.模板的导入

将页面的某一个局部当成一个模块的形式,哪个地方西药就可以直接导入。
nb666.html
<h1>这个是一个非常好看的form表单</h1>
<p>模板的的导入</p>
{% include 'nb66.html' %}

="">

username:

password:

{% endblock %}

{% block js %}

{% endblock %}


```html
<!--longin1.html-->
{% extends 'home.html' %}{% block css %}<style>h1 {color: greenyellow;}</style>
{% endblock %}{% block content %}<h1 class="text-center">登入页面</h1><form action=""><p>username: <input type="text" class="form-control"></p><p>password: <input type="text" class="form-control"></p><input type="submit" class="btn btn-danger"></form>
{% endblock %}{% block js %}<script>alert('登入')</script>
{% endblock %}

7.模板的导入

将页面的某一个局部当成一个模块的形式,哪个地方西药就可以直接导入。
nb666.html
<h1>这个是一个非常好看的form表单</h1>
<p>模板的的导入</p>
{% include 'nb66.html' %}

43.Django04相关推荐

  1. BI.寒号鸟请吃烧烤/意外入手“speed- dear friends vol.1”/入手“鲍家街43号”/我爱红红/我爱红红...

    先说,昨天下午,在逛完西北政法的乐图后,辗转到了高新区,见到了在经典论坛认识的热情的热心的热烈的寒号鸟兄弟,而notus本人则感动的热泪盈眶,想不到在遥远的西安,都有人惦记着我 T_T 附上我们的合影 ...

  2. 茅台App首发就登顶!单日下载量43万,甚至还没开始试运行

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 杨净 发自 凹非寺 量子位 | 公众号 QbitAI 也是没想到有一 ...

  3. 全球 43 亿 IPv4 地址宣告耗尽!

    IPv4 是互联网的核心,也是使用最广泛的网际协议版本. 长期以来,全球 IPv4 地址耗尽令人担忧,今天这一时刻终于来临--负责英国.欧洲.中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIP ...

  4. 43.6% mAP! 阿里巴巴提出:用于一阶段目标检测的半锚式检测器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 摘要 标准的一阶段检测器包括两个任务:分类和回归.为特征图中的每个 ...

  5. Sequelize 4.43.0 发布,基于 Nodejs 的异步 ORM 框架

    Sequelize 4.43.0 发布了,Sequelize 是一款基于 Nodejs 的异步 ORM 框架,它同时支持 PostgreSQL.MySQL.SQLite 和 MSSQL 多种数据库,很 ...

  6. 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...

  7. 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现 | PNAS

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 透视远处墙后面的物体,听起 ...

  8. 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现

    透视远处墙后面的物体,听起来不是魔法就是超能力. 但已经被中科大潘建伟.窦贤康.徐飞虎带领的团队实现了,而且距离高达1.43千米.这项技术称为远距离非视域成像. 本次实验地点在上海,将成像系统放置在下 ...

  9. Facebook最新语音算法曝光!自监督语音识别,错误率低至2.43%

    2019-11-06 15:16:55 智东西11月6日消息,Facebook近日公开自动语音识别(ASR)领域的wave2vec机器学习算法细节,可以使用原始音频作为训练数据并提高准确性. wave ...

  10. 全球43亿IPv4地址正式耗尽,IPv6才是物联网的菜

    来源:鲜枣课堂.财经杂志.CSDN 物联网智库 整理发布 导  读 负责英国.欧洲.中东和部分亚洲地区互联网资源分配的欧洲网络协调中心(RIPE NCC)昨日宣布,其已从可用地址池中完成了最后IPv4 ...

最新文章

  1. Leetcode 155. 最小栈 (每日一题 20210923)
  2. Codeforces 982 C. Cut 'em all!(dfs)
  3. qr二维码遇到的一些问题
  4. Linux下安装memcache以及扩展
  5. 大学生慕课第二周学习笔记
  6. 二级c语言题库手机软件,C语言二级题库下载
  7. java基础学习总结——流
  8. nginx+lua_nginx+GraphicsMagick生成实时缩略图
  9. 初等模型---交通流和道路通行能力
  10. Web自动化漏洞检测工具:Xray
  11. (转)罗振宇跨年演讲:哪来直接登顶的人生,只有不断迭代的历程
  12. 三分钟计算机自我介绍面试,三分钟面试自我介绍【三篇】
  13. Keil升级到AC6后,到底有哪些变化?
  14. 什么是天气预报 API 接口?如何获取天气预报 API?
  15. ios微信组件跳转_在iOS9中突破微信App跳转的限制
  16. 火拼商城:4亿乡村新中产正在消费升级!
  17. Employing Personal Word Embeddings for Personalized Search
  18. 好未来单季营收2.24亿美元:同比降84% 张邦鑫持股26.3%
  19. 3种应用架构简单介绍
  20. 刘芳计算机学院,刘芳(计算机科学学院)老师 - 四川师范大学 - 院校大全

热门文章

  1. 数字信号处理--语音信号变声报告
  2. opencv-python——基于标志物的道路逆透视变换
  3. ERROR 1820 (HY000): You must reset your password using ALTER USER statement
  4. .NET 结构体 Struck、类
  5. C#对Dictionary的按Value排序
  6. 威联通文件传输服务器,威联通QTS文件传输体验
  7. 五线谱如何快速修改谱号,Overture这个小技巧必须要掌握!
  8. Aruba protal 认证 图标
  9. 小程序生命周期_微信小程序开发日记App生命周期
  10. flutter插件开发(一)