flask视频网站(前端)

news/2024/5/9 17:39:26/文章来源:https://blog.csdn.net/Roy_Allen/article/details/120982318

文章目录

  • 前端界面
    • 前台
      • 电影列表
      • 404
    • 后台
  • 小结

前端界面

  • 前端的搭建目前水平只能靠模板了
    1
  • templates中新建admin/home

前台

  • 搭建顶部和底部,新建 home.html
    • 这部分是所有页面都要用到的,后面的模板继承也是基于此,用block增加内容!也叫布局文件
    • 替换模板中静态资源路径,这里用到url_for,这些知识点在我的笔记中都可以找到
    • 渲染模板还是从路由开始
      # home/views.py
      from flask import render_template@home.route("/")
      def index():return render_template("home/index.html")
      
      <!--在home.html的内容部分使用:-->
      <div class="container" style="margin-top:76px">{% block content %}{% endblock %}
      </div><!--templates/home/index.html 前端页面-->
      <!--这里使用模板继承的方法,更加灵活,替换名为 content 的 block-->
      {% extends "home/home.html" %}{% block content %}
      <h1>Hello Roy!</h1>
      {% endblock %}
      
    • 注:这里用到的 statictemplates 都是app下框架预设的目录,所以可以直接使用相对路径
  • 登录登出
    • 先从定义路由视图开始
      @home.route("/login")
      def login():return render_template("home/login.html")@home.route("/logout")
      def logout():return redirect(url_for("home.login"))  # url_for根据视图反向解析路径,和模板中的url_for不是一回事
      
    • 定义模板,在login.html中,先继承顶部和底部,然后用{% block content %}替换继承模板中对应的内容
    • 将home模板中登录登出button的链接也替换掉
      <li><a class="curlink" href="{{url_for('home.login')}}"><span class="glyphicon glyphicon-log-in"></span>&nbsp;登录</a>
      </li>           
      <li><a class="curlink" href="{{url_for('home.logout')}}"><span class="glyphicon glyphicon-log-out"></span>&nbsp;退出</a>
      </li>
      
  • 会员中心
    • 包含的页面比较多,直接从视图看吧;每个视图都对应一个HTML文件
      @home.route("/register")
      def register():return render_template("home/register.html")@home.route("/user")
      def user():return render_template("home/user.html")@home.route("/pwd")
      def pwd():return render_template("home/pwd.html")@home.route("/comments")
      def comments():return render_template("home/comments.html")@home.route("/loginlog")
      def loginlog():return render_template("home/vloginlog.html")@home.route("/moviecol")
      def moviecol():return render_template("home/moviecol.html")
      
    • 同样的方法,使用模板继承填充 home.html 模板的 block
    • 当然,可以继承多个页面,但是block的名称要区分开
    • 我们还可以使用{% include "" %}语法导入定义好的其他公共界面
    • 修改一下home.html,增加个block,给左侧menu增加js代码,实现active切换
      {% block active %}
      <script>$(document).ready(function () {$("#m-2").addClass("active")})
      </script>
      {% endblock %}
      

电影列表

  • 前面登陆和会员中心两部分的界面完成后,最关键的电影列表界面,和搜索界面
  • 新建布局文件layout.html,当然,先从路由视图开始
    # 电影列表界面
    @home.route("/")
    def loginlog():return render_template("home/index.html")@home.route("/animation")
    def moviecol():return render_template("home/animation.html")
    
    # 电影搜索和播放界面
    @home.route("/search")
    def search():return render_template("home/search.html")@home.route("/play")
    def play():return render_template("home/play.html")
    
  • 这里涉及到使用{% for v in range(1, 10) %}{% endfor %},因为这些事动态内容,这样写后面可以根据数据库查询动态显示
  • 任何界面大致搞出来,然后就要在很多地方点点点,看看哪些链接还没搞好!
    • 当然,也不能乱改,最好从布局文件开始,然后首页index…

404

  • 错误界面做的好看相当重要,体现你这个艺术水平
  • 这里的路由不太一样!
    # app/__init__.py@app.errorhandler(404)
    def page_not_found(error):return render_template("home/404.html"),404
    

后台

  • 先把后台界面搭建起来,诶~
  • 登录登出
    @admin.route('/login')
    def login():return render_template('admin/login.html')@admin.route('/logout')
    def logout():return redirect(url_for('admin.login'))
    
  • 布局文件中有一些常用的块,很长的部分也可以抽出去用{% include %}形式
    {% block css %}{% endblock %}
    {% block content %}{% endblock %}
    {% block js %}{% endblock %}
    
  • 修改密码,控制面板
    @admin.route('/pwd')
    def pwd():return render_template('admin/pwd.html')
    
    • 这里激活选中的控制面板需要在父标签,例如首页,动态增加active属性
    • 可以参看源后台源码,定位问题
  • 接下来就是根据左侧的menu逐个完成了
    2
    from . import admin
    from flask import Flask, render_template, redirect, url_for@admin.route('/login')
    def login():return render_template('admin/login.html')@admin.route('/logout')
    def logout():return redirect(url_for('admin.login'))@admin.route('/')
    def index():return render_template('admin/index.html')@admin.route('/pwd')
    def pwd():return render_template('admin/pwd.html')# 标签的添加和列表
    @admin.route('/tag/add')
    def tag_add():return render_template('admin/tagadd.html')@admin.route('/tag/list')
    def tag_list():return render_template('admin/taglist.html')# 电影的添加和删除
    @admin.route('/movie/add')
    def movie_add():return render_template('admin/movieadd.html')@admin.route('/movie/list')
    def movie_list():return render_template('admin/movielist.html')# 预告的添加和列表
    @admin.route('/preview/add')
    def preview_add():return render_template('admin/previewadd.html')@admin.route('/preview/list')
    def preview_list():return render_template('admin/previewlist.html')# 会员列表
    @admin.route('/user/list')
    def user_list():return render_template('admin/userlist.html')# 会员查看
    @admin.route('/user/view')
    def user_view():return render_template('admin/userview.html')# 评论列表
    @admin.route('/comment/list')
    def comment_list():return render_template('admin/commentlist.html')# 收藏列表
    @admin.route('/collect/list')
    def collect_list():return render_template('admin/collectlist.html')# 操作日志
    @admin.route('/oplog/list')
    def oplog_list():return render_template('admin/oploglist.html')# 管理员登录日志
    @admin.route('/adminlog/list')
    def adminlog_list():return render_template('admin/adminloglist.html')# 会员登录日志
    @admin.route('/userlog/list')
    def userlog_list():return render_template('admin/userloglist.html')# 权限添加
    @admin.route('/auth/add')
    def auth_add():return render_template('admin/authadd.html')# 权限列表
    @admin.route('/auth/list')
    def auth_list():return render_template('admin/authlist.html')# 角色添加
    @admin.route('/role/add')
    def role_add():return render_template('admin/roleadd.html')# 角色列表
    @admin.route('/role/list')
    def role_list():return render_template('admin/rolelist.html')# 管理员添加
    @admin.route('/admin/add')
    def admin_add():return render_template('admin/adminadd.html')# 管理员列表
    @admin.route('/admin/list')
    def admin_list():return render_template('admin/adminlist.html')
    
  • 模板的话还是那些方法,使用布局模板文件,继承之后填充block

小结

  • 流程:路由——视图——模板
    • app下模板文件templates和静态资源的目录static是框架定义好的,相对定位即可
  • 技巧:布局文件+模板继承
    • 在页面中使用 url_for() 完成文件定位;也用作视图定位
    • 在视图中使用 url_for() 反向解析,定位视图
    • 404界面需要在app中定义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_826679.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask视频网站(后台管理)

文章目录简介管理员登录标签管理电影管理电影预告管理会员管理评论管理电影收藏管理员密码修改日志管理操作日志管理员登录日志会员登录日志小结简介 这一部分要实现具体的后台管理逻辑基本逻辑如下&#xff1a; 管理员登录 将之前models中数据库的认证部分移动到app初始化…

flask视频网站(权限控制)

文章目录AuthRoleAdmin权限控制Auth 基于角色的访问权限控制 有的管理员只能访问日志&#xff0c;而有的能访问会员列表&#xff0c;有的管理电影这部分还属于admin 从创建表单模型开始&#xff0c;别着急class AuthForm(FlaskForm):"""访问权限控制"&quo…

ASP.NET Core 网站在Docker中运行

Docker作为新一代的虚拟化方式&#xff0c;未来肯定会得到广泛的应用&#xff0c;传统虚拟机的部署方式要保证开发环境、测试环境、UAT环境、生产环境的依赖一致性&#xff0c;需要大量的运维人力&#xff0c;使用Docker我们可以实现一次部署&#xff0c;到处运行。 本文介绍如…

给你介绍一个假的苹果网站,能肉眼看出来算我输!

这或许是用肉眼最难分辨的钓鱼网站&#xff0c;没有之一&#xff0c;不信你试试&#xff0c;能看出端倪吗&#xff1f; 网站的 URL 地址显示的是苹果官网&#xff0c;网址旁边是安全字样和绿色小锁&#xff0c;表示网站信息基于 https 加密传输&#xff0c;完全没什么问题&…

新手如何掌握制作和提交网站地图?

新手如何掌握制作和提交网站地图?网站地图作为根据网站的结构&#xff0c;框架&#xff0c;内容生成的导航网页文件。大多数人都知道网站地图对于提高用户体验有好处&#xff1a;它们为网站访问者指明方向&#xff0c;并帮助迷失的访问者找到他们想看的页面。那么什么是网站地…

006-网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具&#xff0c;比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

漫谈聚类--网站

http://blog.pluskid.org/?page_id78 转载于:https://www.cnblogs.com/lm3306/p/9347665.html

json在线解析及格式化验证网站

2019独角兽企业重金招聘Python工程师标准>>> https://www.json.cn/ 转载于:https://my.oschina.net/u/3766116/blog/1861799

成都SEO网站优化与新媒体流量互通_成都辰星建站

为什么80%的码农都做不了架构师&#xff1f;>>> 成都SEO企业网站优化流量来源途径与互联网新媒体列表及流量互通实施方案,新媒体运营在当下的互联网流量运营方式占据着举足轻重的作用,企业网站流量导入外链建设已经逐渐削弱,星的流量运营导入方式已经诞生&#xff…

电商网站架构探索|SOA分布式架构详解

目前很多的企业都有自己的电商网站&#xff0c;但随着业务量的增长&#xff0c;并发量高了。由于平台架构的一些不足&#xff0c;会导致一系列严重的问题&#xff0c;电子商务平台的安全性&#xff0c;承受能力也经受着严峻的考验&#xff0c;而市面上绝大多数的电商网站是业务…

百度关键词模拟发包php程序,PHP可视化百度小程序平台微信狗源码OEM招商加盟版(多套网站风格模板+一键搭建)...

【温馨提示】源码包解压密码&#xff1a;www.youhutong.com资源描述PHP可视化百度小程序平台微信狗源码OEM招商加盟版(多套网站风格模板一键搭建)源码介绍&#xff1a;它拥有以下几个特点&#xff1a;1、系统终身使用&#xff0c;可以生成无数小程序&#xff1b;2、自带多种行业…

log4j mysql 详细日志_log4j将日志存储到数据库_太平洋学习网|一个最全的javaweb,js,css,html5,csdn,android,linux的学习网站。...

log4j是javaEE日志输出文件&#xff0c;通常情况下我们都是把log日志输出到指定的日志文件中&#xff0c;在这儿我们使用log4j将日志存储到mysql&#xff0c;oracle数据库表中&#xff0c;使用log4j前必须引入log4j.jar 和commons-logging.jar这两个jar包。一&#xff1a;配置l…

获取手机号_网站获取手机号的方法

很多人疑惑网站和app中的手机电话号码数据是怎么抓取的&#xff0c;是如何实现的&#xff0c;我在这里说下。一、数据的来源现在数据的来源有很多种&#xff0c;我给大家说下常见的几种数据来源方式和抓取方式。1、运营商数据&#xff0c;这种来源方式的话是运营商会有一个http…

WebMatrixRazor建站系列之WebMatrix介绍

WebMatrix介绍 WebMatrix是微软开发的一个免费的&#xff0c;轻量级Web开发工具。提供了一种简单的方式让我们创建一个站点。它包括IIS Express&#xff08;Web服务器&#xff09;&#xff0c;ASP.NET&#xff08;Web框架&#xff09;&#xff0c;和SQL Server Compact&#xf…

如何扫描网站的php文件在哪里,PHP实现的网站目录扫描索引工具

代码很简单&#xff0c;这里就不多废话了&#xff0c;本代码来至一位网友的投稿&#xff0c;经测试可用error_reporting(E_ALL & ~E_NOTICE);ignore_user_abort();set_time_limit(0);if ($_GET[act] op) {$data_url $_GET[url] . /;$hz $_GET[type];list($fw1, $fw2) e…

为您的IIS6下的网站配置Rewrite伪静态组件

首先我们下载Rewrite伪静态组件到服务器&#xff0c;点击下载&#xff0c;然后解压到D:\Rewrite下&#xff0c;解压后如下图&#xff1a; 温馨提示&#xff1a;ReWrite组件所在目录要有Users或者Everyone默认访问权限。您可以点击该目录右键&#xff0c;属性&#xff0c;安全&a…

超实用的54套ASP网站设计源码

2019独角兽企业重金招聘Python工程师标准>>> ASP是一种服务器端脚本编写环境&#xff0c;可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容。以下是则会54套ASP网站设计源码…

网站相关技术探究keepalive_timeout:

网站相关技术探究keepalive设多少&#xff1a; /proc/$PID/fd/$number0:标准输入 1:标准输出2:标准错误Test:[rootKTQT ~]# ll /proc/12857/fdtotal 0 lrwx------ 1 root root 64 Apr 4 17:49 0 -> /dev/nulllrwx------ 1 root root 64 Apr 4 17:49 1 -> /dev/nulllrwx…

Google的网站统计、分析系统

http://www.google.com/analytics/功能全&#xff0c;比较酷&#xff01;转载于:https://www.cnblogs.com/huobazi/archive/2005/11/16/277830.html

SharePoint Server 2013 Step By Step之管理网站导航

管理网站导航SharePoint网站导航包括两个区域的导航选项&#xff0c;快速启动和导航栏。默认情况下&#xff0c;快速启动位于网站内容的左侧&#xff0c;通常用于列出当前站点&#xff1a;如列表、类别&#xff0c;库&#xff0c;子网站等等。而导航栏&#xff0c;默认情况下&a…