Flask构建微电影(一)
第一章、项目介绍
1.1.前言
本教程我将带领大家如何使用flask框架开发微电影网站。Flask是python中最受欢迎的轻量级web框架,flask扩展丰富,冗余度小,可自由选择组合各种插件,性能优越。
相比其他web框架十分轻量级,其优雅的设计哲学,易于学习掌握。小型项目快速开发,大型项目毫无压力。由于flask灵活开发的特点,python高手都会青睐flask,正基于
此,它被许多公司应用在项目开发中,成为很多创业公司以及个人创业者门追捧的web开发框架,本教程主要使用flask构建一个个性化定制的前台结合后台管理系统的微
电影网站,项目开发过程严格按照互联网公司的标准流程。让学习者在开发中写出更优雅简练的代码。
1.2.掌握的技术
通过学习本教程,你将掌握flask框架以下知识:
- 学会使用整型、浮点型、路径性、字符串型正则表达式路由转化器
- 学会使用ost与get请求、上传文件、cookie获取与响应、404处理
- 学会使用模板自动转义、定义过滤器、定义全局上下文处理器、jinja2语法、包含、继承、定义宏
- 学会使用flask-wtf定义表单模型、字段类型、字段验证、视图处理表单、模板使用表单
- 学会使用flask-sqlalchemy定义数据库模型、添加数据、修改数据、查询数据、删除数据、数据库事件、数据迁移
- 学会使用蓝图优化项目结构,实现微电影网站前台于后台业务逻辑
- 学会flask的部署方法、安装编译nginx服务、安装编译python3.6服务、安装mysql服务以及通过nginx反向代理对视频流媒体限制下载速率、限制单个IP能发起的播放连接数
之后我们通过项目实战,结合各种flask的插件配置及使用,让大家体会flask的看家本领微内核+扩展插件,带领你前所未有的快感。
1.3.用到的扩展插件
本教程用到的扩展插件有
- werkzug工具箱
- pymysql数据库驱动
- sqlalchemy数据库orm
- wtforms表单验证工具
- jinjia2模板引擎
- flask-script命令行脚本
- functools定义高阶函数
1.4.视频技术
最后还将学到更实用的视频技术
- jwplayer播放器插件
- 视频限速限IP访问
- flv、MP4视频格式支持
- nginx点播实现
1.5.章节安排
接下来介绍详细教程安排,教程一共十一章,大致分为六部分
(1)教程介绍
- 介绍微电影网站整体开发流程
- flask简介
- 学完教程掌握的知识点
(2)环境搭建与工具
- 搭建开发环境安装依赖包、virtualenv虚拟化环境的使用
- pycharm编辑器的使用、介绍pip下载工具的使用
(3)项目优化与模型设计
- 使用flask的蓝图Blueprint规划项目结构
- 使用flask sqlalchemy定义和业务需求相关的数据库模型
- 结合mysql数据库生成数据表
(4)前端搭建
- 实现前台后台html布局页面搭建
- 学习jinjia2引擎语法
- 引入静态资源文件、404错误页面的处理
(5)后端开发
- flask sqlalchemy 结合mysql数据表进行增删改查操作
- flask数据分页查询、路由装饰器定义、模板中变量调用登录会话机制、上传文件
- flask wtforms表单验证、flask自定义应用上下文、自定义权限装饰器对管理系统进行基于权限的访问控制
- flask的多表关联查询、关键字模糊查询等
(6)网站部署
- 实现在centos服务器行搭建nginx+mysql+python环境
- 使用nginx反向代理多端口多进程部署微电影网站
- 配置nginx流媒体访问限制参数
1.6.技术储备要求
只要你是pythoner,你就应该学会flask,作为一个合格的pytoner,只掌握一个框架是不够的,如果你有过其它python框架,例如django的使用经验,对比不同框架来学习,你将收获更多。多一项技能,就多一分工作机会哦!学习前,希望你符合以下技术储备要求,学习本教程的必备基础是:
- 有自学能力
- 需要掌握python基本语法
- 会使用mysql数据库
- 会liunx基本操作
- 有前端基础知识
小伙伴们还在等什么,一起来实战吧!
1.7.系统功能介绍
前台
- 会员登录及注册
- 会员中心
- 电影播放
- 电影评论
- 收藏电影
后台
- 管理员登录
- 修改密码
- 标签管理
- 上映预告管理
- 会员管理
- 评论管理
- 收藏管理
- 角色管理
- 权限管理
开发及生产环境
- win7
- python3
- mysql
- html5
- flask
- nginx
- pycharm
1.8.python web框架对比
三种web框架的比较
- Flask 扩展丰富,冗余度小,可自由选择组合各种插件,性能优越,相比其他web框架十分轻量级,其优雅的
设计哲学易于学习掌握,小型项目快速开发,大型项目毫无压力,FLask灵活开发,python高手基本都会喜欢flask
- Django 是重量级全栈型web框架,虽然功能强大,但冗余度高,自带ORM和模板引擎,灵活和自由度不够高
开发小型项目时显得过于臃肿与庞大
- Tornado 是一个强大的、支持协程、高并发且可扩展的web服务器,发布于2009年9月,应用于FriendFeed
Facebook等社交网站。Tornado的强项在于可以利用他的异步协程机制开发高并发的服务器系统
1.9.flask简介
flask简单介绍
- 轻量级web应用框架
- WSGI工具箱采用Werkzeug
- 模板引擎则使用Jinja2
- Flask使用BSD授权
1.10.“微内核”框架简介
微内核
- 称为“microframework”,简单的核心,用extension增加其他功能。
- 没有默认的数据库、窗体验证工具
- 保留扩展的弹性,可用Flask-extension加入这些功能:ORM、窗体验证工具文件上传、各种开放方式身份验证技术
第二章、环境搭建
2.1.虚拟环境搭建
(1)环境变量设置
- 桌面新建文件夹Envs
- 新建环境变量:以后创建虚拟环境会自动保存到这个路径
(2)虚拟环境安装
pip install virtualenv pip install virtualenvwrapper-win mkvirtualenv flask_project #创建虚拟环境 workon #查看有哪些虚拟环境 workon flask_project #进入创建的虚拟环境 deactivate.bat #退出虚拟环境 activate.bat #激活虚拟环境
2.2.第一个flask程序
(1)flask的安装
pip install -i https://pypi.douban.com/simple flask
(2)创建项目
创建项目movie_project,然后创建app.py
from flask import Flask #实例化flask对象
app = Flask(__name__) #将'/'和函数index的对应关系加到路由中
@app.route('/')
def index():
return 'Hello World!' if __name__ == '__main__':
app.run()
浏览器访问:http://127.0.0.1:5000/
Flask构建微电影(一)的更多相关文章
- Flask构建微电影(二)
第三章.项目分析.搭建目录及模型设计 3.1.前后台项目目录分析 微电影网站 前台模块 后台模块 前台(home) 数据模型:models.py 表单处理:home/forms.py 模板目录:tem ...
- Python flask 构建微电影视频网站☝☝☝
Python flask 构建微电影视频网站☝☝☝ 1.安装数据库连接依赖包 pip install flask-sqlalchemy 2.创建movie数据库 在CentOS虚拟机,进入MaridD ...
- Python flask 构建微电影视频网站✍✍✍
Python flask 构建微电影视频网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
- Flask 构建微电影视频网站(一)
Flask构建电影视频网站 Python MTV模型 Flask微内核 Flask扩展插件配置及使用方法 根据业务开发网站前后台功能 Flask结合MySQL数据库 你将可以独立开发网站 独立部署运维 ...
- Python Flask 构建微电影视频网站
前言 学完本教程,你将掌握: 1.学会使用整形.浮点型.路径型.字符串型正则表达式路由转化器 2.学会使用post与get请求.上传文件.cookie获取与相应.404处理 3.学会适应模板自动转义. ...
- Flask 构建微电影视频网站(四)
后台管理 实现后台管理系统使用flask sqlalchemy结合mysql数据库进行增删改查操作.分页的使用.路由装饰器定义.模板中变量调用.登录会话机制.上传文件.flask wtforms表单使 ...
- Flask 构建微电影视频网站(八)
评论收藏及弹幕 实现电影评论添加及列表.数据查询实现统计播放量和评论量.jquery ajax实现收藏电影,flask结合redis消息队列实现电影弹幕,bug处理等功能. 电影评论-统计 class ...
- Flask 构建微电影视频网站(三)
搭建后台页面 视图函数位于admin文件夹下, app/admin/views.py 管理员登录页面搭建 视图函数 @admin.route('/') def index(): return '后台主 ...
- Flask 构建微电影视频网站(二)
搭建前台页面 前台布局搭建 将static中的文件拷贝到项目的static目录下 在app/templates/home下新建home.html,当作基础模板,并修改静态资源链接 <!docty ...
随机推荐
- Linux C系统编程:信号与定时器的使用
#include <stdio.h> #include <signal.h> void do_alarm(int num); int main(void) { //注册一个定时 ...
- com.android.dex.DexException: Multiple dex files define(jar包重复引用) 错误解决
前段时间开始转入Android studio,不料果真使用时候遇到些错误,在此记下! 出现这个错误往往是在libs目录下有个jar包,然后在gradle文件中又引用了,即: 共同引用了. 解决方法: ...
- LeetCode(64)- Min Stack
题目: Design a stack that supports push, pop, top, and retrieving the minimum element in constant time ...
- 关于IOS中使用支付功能(以支付宝为例)
支付宝是第三方支付平台,简单来说就是协调客户,商户,银行三者关系的方便平台 使用支付宝进行一个完整的支付功能,大致有以下步骤: a 与支付宝进行签约,获得商户ID(partner)和账号ID(sell ...
- javascript函数式编程一例分析
js像其他动态语言一样是可以写高阶函数的,所谓高阶函数是可以操作函数的函数.因为在js中函数是一个彻彻底底的对象,属于第一类公民,这提供了函数式编程的先决条件. 下面给出一个例子代码,出自一本js教程 ...
- 深入了解Map
联系 Java中的Map类似于OC的Dictionary,都是一个个键值对组成,一键对应一值.我在之前的文章中讲解过Set,其实在JAVA底层Set依赖的也是Map,那我们都知道,Set是单列的(只有 ...
- mysql性能优化之-innodb_flush_log_at_trx_commit
innodb_flush_log_at_trx_commit是配置MySql日志何时写入硬盘的参数: 一.参数值说明 0:log buffer将每秒一次地写入log file中,并且log file的 ...
- 【基础】CSS实现多重边框的5种方式
简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求 ...
- java程序的内存分配(一)
首 页 阅览室 馆友 我的图书馆 帐号 java程序的内存分配(一) 收藏 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据J ...
- python的logging模块之读取yaml配置文件。
python的logging模块是用来记录应用程序的日志的.关于logging模块的介绍,我这里不赘述,请参见其他资料.这里主要讲讲如何来读取yaml配置文件进行定制化的日志输出. python要读取 ...