在xadmin后台新增页面,如下所示:
1,在xadmin.py文件中设置全局样式并注册。
class GlobalSetting(object):
site_title="频道后台管理"
site_footer="其它"
# menu_style = 'accordion' #设置app下拉展开
"""
自定义页面
"""
def get_site_menu(self): #名称不能改
return [
{
'menus': (
{
'title': '移动直播生成器', #这里是你菜单的名称
'url': '/xadmin/test_view', #这里填写你将要跳转url
# 'icon': 'fa fa-cny' #这里是bootstrap的icon类名,要换icon只要登录bootstrap官网找到icon的对应类名换上即可
},
)
}
]
#注册要跳转的视图函数
xadmin.site.register_view(r'test_view/$', TestView, name='test')
urls.py
urlpatterns = [
url(r'',xadmin.site.urls),
url(r'xadmin/test_view/',TestView.as_view())
]
2,在APP的views.py文件中编写视图函数TestView
from xadmin.views import CommAdminView
class TestView(CommAdminView):
def get(self, request):
context = super().get_context() # 这一步是关键,必须super一下继承CommAdminView里面的context,不然侧栏没有对应数据,我在这里卡了好久
title = "移动直播生成器" # 定义面包屑变量
context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title}) # 把面包屑变量添加到context里面
context["title"] = title # 把面包屑变量添加到context里面
# 下面你可以接着写你自己的东西了,写完记得添加到context里面就可以
return render(request,'test.html', context) # 最后指定自定义的template模板,并返回context
def get_url(self, app_name, stream_name):
t = time.time() + 172800
keytime = str(int(t))
hashstring = "/" + app_name + "/" + stream_name + "-" + keytime + "-0-0-" + app_name + "alipush"
m = hashlib.md5()
m.update(hashstring.encode("utf8"))
mm = m.hexdigest()
print(mm)
push = "rtmp://" + app_name + "alipush.v.myalicdn.com/" + app_name + "/" + stream_name + "?auth_key=" + keytime + "-0-0-" + mm
return push
def post(self, request):
print('mmmmmmmmmmmmm')
app_name = request.POST.get('app')
stream_name = request.POST.get('name')
context = super().get_context() # 这一步是关键,必须super一下继承CommAdminView里面的context,不然侧栏没有对应数据,我在这里卡了好久
title = "移动直播生成器" # 定义面包屑变量
context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title}) # 把面包屑变量添加到context里面
context["title"] = title # 把面包屑变量添加到context里面
# 下面你可以接着写你自己的东西了,写完记得添加到context里面就可以了
context['app_name'] = app_name
context['streaa_name'] = stream_name
context['push'] = self.get_url(app_name,stream_name)
return render(request,'test.html', context) # 最后指定自定义的template模板,并返回context
3,写一个HTML文件用于渲染页面,templates/test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style type="text/css">
#return_string{
margin-top:20px
}
</style>
{% extends 'xadmin/base_site.html' %}
{% block content-nav %}
{% endblock %}
{% block content %}
<form id="sqlform" method="post" action="http://127.0.0.1:8000/xadmin/test_view/">
{% csrf_token %}
<table class="table table-hover">
<tr>
<th>AppName:</th>
<td>
<select class="select" id="stream" name="app">
<option value="mlive" {% if app_name == 'mlive' %}
selected
{% endif %}>mlive</option>
<option value="news" {% if app_name == 'news' %}
selected
{% endif %}>news</option>
<option value="sports" {% if app_name == 'sports' %}
selected
{% endif %}>sports</option>
<option value="cstv" {% if app_name == 'cstv' %}
selected
{% endif %}>cstv</option>
</select>
</td>
</tr>
<tr>
<th style="width: 50px">StreamName:</th>
<td>
<input value="{{ streaa_name }}" id="name" name="name">
</td>
</tr>
</table>
<div>
{# <input type="button" value="确定" class="btn btn-success" id="ok">#}
<input type="submit" value="确定" class="btn btn-success" id="ok">
</div>
</form>
<div id="return_string">{{ push }}</div>
{% endblock %}
{% block content %}
这里面是自定义的页面。。。
{% endblock %}