用python写一个影视后台管理系统
时间: 2023-07-10 20:12:36 浏览: 63
好的,影视后台管理系统一般需要以下功能模块:
1. 用户管理模块:用于管理系统用户的登录、注册、权限分配等功能。
2. 影视资源管理模块:用于管理影视资源的增删改查等功能。
3. 视频播放模块:用于播放影视资源。
4. 数据统计模块:用于统计影视资源的观看量、下载量等数据。
5. 系统设置模块:用于配置系统参数、修改密码等功能。
以下是一个简单的影视后台管理系统的Python实现,使用了Flask作为Web框架和SQLite作为数据库:
```python
from flask import Flask, render_template, request, redirect, url_for
import sqlite3
app = Flask(__name__)
# 数据库初始化,创建用户表和影视资源表
def init_db():
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)')
c.execute('CREATE TABLE IF NOT EXISTS movies (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, director TEXT, star TEXT, category TEXT, intro TEXT, img_url TEXT, video_url TEXT)')
conn.commit()
conn.close()
# 用户登录
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('SELECT * FROM users WHERE username=? AND password=?', (username, password))
user = c.fetchone()
if user:
return redirect(url_for('index'))
else:
return render_template('login.html', error='用户名或密码错误')
else:
return render_template('login.html')
# 用户注册
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('SELECT * FROM users WHERE username=?', (username,))
user = c.fetchone()
if user:
return render_template('register.html', error='用户名已存在')
else:
c.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
conn.close()
return redirect(url_for('login'))
else:
return render_template('register.html')
# 影视资源列表
@app.route('/')
def index():
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('SELECT * FROM movies')
movies = c.fetchall()
conn.close()
return render_template('index.html', movies=movies)
# 影视资源详情
@app.route('/detail/<int:id>')
def detail(id):
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('SELECT * FROM movies WHERE id=?', (id,))
movie = c.fetchone()
conn.close()
return render_template('detail.html', movie=movie)
# 新增影视资源
@app.route('/add', methods=['GET', 'POST'])
def add():
if request.method == 'POST':
name = request.form['name']
director = request.form['director']
star = request.form['star']
category = request.form['category']
intro = request.form['intro']
img_url = request.form['img_url']
video_url = request.form['video_url']
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('INSERT INTO movies (name, director, star, category, intro, img_url, video_url) VALUES (?, ?, ?, ?, ?, ?, ?)', (name, director, star, category, intro, img_url, video_url))
conn.commit()
conn.close()
return redirect(url_for('index'))
else:
return render_template('add.html')
# 修改影视资源
@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit(id):
if request.method == 'POST':
name = request.form['name']
director = request.form['director']
star = request.form['star']
category = request.form['category']
intro = request.form['intro']
img_url = request.form['img_url']
video_url = request.form['video_url']
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('UPDATE movies SET name=?, director=?, star=?, category=?, intro=?, img_url=?, video_url=? WHERE id=?', (name, director, star, category, intro, img_url, video_url, id))
conn.commit()
conn.close()
return redirect(url_for('index'))
else:
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('SELECT * FROM movies WHERE id=?', (id,))
movie = c.fetchone()
conn.close()
return render_template('edit.html', movie=movie)
# 删除影视资源
@app.route('/delete/<int:id>')
def delete(id):
conn = sqlite3.connect('movie.db')
c = conn.cursor()
c.execute('DELETE FROM movies WHERE id=?', (id,))
conn.commit()
conn.close()
return redirect(url_for('index'))
if __name__ == '__main__':
init_db()
app.run(debug=True)
```
以上代码实现了用户管理、影视资源管理、视频播放等功能模块。您可以根据自己的需求进行修改和扩展。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)