美文网首页
xadmin插入自定义页面

xadmin插入自定义页面

作者: 人生ku短 | 来源:发表于2019-10-08 09:15 被阅读0次

    在xadmin后台新增页面,如下所示:

    tempsnip.png

    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 %}
    

    相关文章

      网友评论

          本文标题:xadmin插入自定义页面

          本文链接:https://www.haomeiwen.com/subject/ialfuctx.html