前言:
给自己的网站中加入视频资源,有两种方法,一种是用iframe标签引用外站资源,另一种则使用video标签,获取站内资源进行视频播放。其中前者顾名思义,是将视频资源上传到视频网站中,然后通过引用的方式在站内播放视频,这种方法适用于视频资源内容公开免费,且不想花钱购买七牛云空间的开发者,毕竟是免费的嘛!而后者,则是需要有云空间存放视频资源才可以,不过后者的好处是,可以用于视频付费内容的开发。
今天恰好遇到了给自己要开发的项目,加一段视频新闻公告的需求!既然是新闻公告内容,当然是不需要加密的了。所以,也就没有必要花钱搞个云空间了。果断选择第一种,使用iframe标签的方式来实现网页内嵌播放视频方式来开发!
1.选择视频网站进行视频引用:
1.爱奇艺的视频加广告加得简直丧心病狂,像老太太的裹脚布又臭又长,垃圾,不用!
2.腾讯视频的视频也加广告,虽然广告没有那么长,但是很阴险的是,如果视频超过十几分钟,就会无法在引用视频的网站播放,被强制要求转去腾讯视频才可以看,简直狼子野心,垃圾中的垃圾,不用!
3.bilibili,也就是传说中的b站,不但视频没有广告(引导型广告还是有的,但是不影响观看,不是那种不看完广告不让看视频的霸王硬广),没有玩儿阴的强制跳转去他家网站,还高清无码有弹幕,选b站!
2.实际操作:
1.在template目录下的index.html中加入跟视频引用相关的代码:
1
2
3
4
5
6
7
8
9
10
11
12
|
<! - - 视频 s - - >
<div class = "videocon" >
<div class = "name" style = "color: orangered" >新闻公告< / div>
<div class = "videof" >
<! - - 这里填入从b站随机挑选一个视频,然后获取的引用代码 - - >
<iframe src = "//player.bilibili.com/player.html?aid=24841101&cid=41877807&page=1"
scrolling = "no" border = "0" frameborder = "no" framespacing = "0" allowfullscreen = "true" >
< / iframe>
<! - - - - >
< / div>
< / div>
<! - - 视频 e - - >
|
2.获取b站的视频引用相关代码(随机挑选一个b站视频,进入视频播放页)
3.django网页中的效果图
3.跟django后端结合,动态的嵌入不同视频
1.在models.py中(一般嵌入代码长度不会超过300,在150——300之间)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class bili(models.model):
'''新闻相关视频'''
new = models.foreignkey(news,verbose_name = '新闻公告' ,on_delete = models.cascade)
is_topline = models.booleanfield(default = false,verbose_name = '是否是头条' )
bili = models.charfield(verbose_name = '视频嵌入代码' ,max_length = 300 )
add_time = models.datetimefield(default = datetime.now, verbose_name = '添加时间' )
class meta:
verbose_name = '新闻相关视频'
verbose_name_plural = verbose_name
def __str__( self ):
return self .new.title
|
打开terminal终端,执行数据更新命令:
1
2
|
python manage.py makemigrations
python manage.py migrate
|
2.在adminx.py中注册
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import xadmin
from .models import news,bili
class newsadmin( object ):
list_display = [ 'title' , 'img' , 'click_num' , 'add_time' ]
search_fields = [ 'title' , 'img' , 'click_num' ,]
list_filter = [ 'title' , 'img' , 'click_num' , 'add_time' ]
style_fields = { 'context' : 'ueditor' }
#注册代码
class biliadmin( object ):
list_display = [ 'new' , 'is_topline' ]
search_fields = [ 'new' , 'is_topline' ]
list_filter = [ 'new' , 'is_topline' ]
xadmin.site.register(news, newsadmin)
#注册代码
xadmin.site.register(bili, biliadmin)
|
3.可以在xadmin后台进行多个视频嵌入代码的填入
随机在b站找的三个视频的嵌入代码:
1
2
|
<iframe src = "//player.bilibili.com/player.html?aid=24687507&cid=41510047&page=1" scrolling = "no"
border = "0" frameborder = "no" framespacing = "0" allowfullscreen = "true" > < / iframe>
|
1
2
|
<iframe src = "//player.bilibili.com/player.html?aid=22025564&cid=36402353&page=1" scrolling = "no"
border = "0" frameborder = "no" framespacing = "0" allowfullscreen = "true" > < / iframe>
|
1
2
|
<iframe src = "//player.bilibili.com/player.html?aid=17766502&cid=29007139&page=1" scrolling = "no"
border = "0" frameborder = "no" framespacing = "0" allowfullscreen = "true" > < / iframe>
|
4.在views.py中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
from .models import news,bili
class newview(view):
"""新闻公告详情"""
def get( self ,request,new_id):
new = news.objects. filter ( id = new_id).first()
new.click_num + = 1
# 根据新闻公告的不同,显示与之关联的视频
bili = bili.objects. filter (new = new).last()
new.save()
return render(request, 'news-base.html' ,{ 'new' :new, 'bili' :bili})
class indexview(view):
"""首页"""
def get( self ,request):
all_news = news.objects. all ().order_by( '-add_time' )
p = paginator(all_news, 20 )
page = request.get.get( 'page' , 1 )
try :
news = p.page( int (page))
except pagenotaninteger:
news = p.page( 1 )
#首页播放被标记为头条的最后一部视频
bili = bili.objects. filter (is_topline = true).last()
return render(request, 'index.html' ,{ 'news' :news, 'bili' :bili})
|
5.改写template目录下的index.html(首页)和new-base.html(新闻模板页)
index.html
1
2
3
4
5
6
7
8
|
<! - - 视频 s - - >
<div class = "videocon" >
<div class = "name" style = "color: orangered" >新闻公告< / div>
<div class = "videof" >
{{ bili.bili|safe }}
< / div>
< / div>
<! - - 视频 e - - >
|
new-base.html
1
2
3
4
5
6
7
8
|
<! - - 视频 s - - >
<div class = "videocon" >
<div class = "name" style = "color: orangered" >{{ new.title }}< / div>
<div class = "videof" >
{{ bili.bili|safe }}
< / div>
< / div>
<! - - 视频 e - - >
|
6.效果图
新闻详情页
首页
4.总结
这个功能其实还是挺简单的,技术上没有什么可总结的,只不过我在随机在b站找几个视频,发现基本上所有的视频内容吧,都挺令人担忧的,b站作为体现年轻人喜好的一个网站,其中内容全都是以低俗,谄媚,秀下限,恶趣味,宅腐文化为主旋律的,作为一个90后,不禁叹息,00后真是垮掉的一代啊啊啊啊……现在的年轻人,女生(有些甚至是男扮女装)穿裙子的标准长度,居然是以一扭屁股就能露出安全裤为标准的长度!对于未成年的小男生来说,根本不存在戒撸的可能性了啊!什么叫心理下流看什么都下流?天天靠露安全裤博眼球,自己出于什么心理真的没个数么?当然,从宏观上看,因为三十年前那一拨国策,搞得现在女少男多,按照市场规律:在绝对刚需的情况下,物以稀为贵! 现在社会整体上,女性的权利空前的大,这是无法改变的。既然无法改变,不妨转变一个角度看问题,适龄女性比适龄男性少,当今女性的裙子又比过去女性的裙子短,显然卫生纸的市场需求量,势必越来越大,而卫生纸的上游行业(木材,芦苇等造纸原材料的行业),及同类行业(软装、纸箱、办公用纸等与卫生纸消耗同样原料的行业)价值必将一路上扬!如果有搞期货或者炒股票的兄弟觉得有道理,入手一些这种行业的证券,肯定稳赚啊!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/xuepangzi/p/9201941.html