使用pycharm和mysql,完成一个数据管理系统的设计,管理各种数据集。要求实现:(1)针对每个数据集可以展示出具体描述信息,并可提供下载(2)数据集上可以添加代码,评论,有点赞和踩;用户也可以取消点赞,可以删除自己的评论。首页展示关注度最高或者下载量最大的数据集,并在在网页中显示出来。写出详细代码。
时间: 2024-02-01 10:16:38 浏览: 76
pycharm编写的用户信息管理系统
首先,需要安装mysql数据库和pycharm IDE,然后创建一个数据库和数据表,用于存储数据集的相关信息、代码、评论、点赞等。
下面是一个简单的数据库设计:
- 数据库名:data_management_system
- 数据表名:data_set
- id:数据集的唯一标识符,自增长
- name:数据集名称
- description:数据集描述
- download_link:数据集下载链接
- code:数据集代码
- likes:数据集点赞数
- dislikes:数据集踩数
- 数据表名:comments
- id:评论的唯一标识符,自增长
- data_set_id:评论所属的数据集id
- user_name:评论用户的用户名
- comment_text:评论内容
- 数据表名:likes
- id:点赞的唯一标识符,自增长
- data_set_id:点赞所属的数据集id
- user_name:点赞用户的用户名
在pycharm中,需要安装mysql-connector-python包,用于连接mysql数据库。可以使用以下命令进行安装:
```
pip install mysql-connector-python
```
下面是一个简单的数据管理系统的代码实现:
```python
import mysql.connector
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="data_management_system"
)
# 首页展示关注度最高或者下载量最大的数据集
@app.route('/')
def index():
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM data_set ORDER BY likes DESC, downloads DESC LIMIT 10")
data_sets = mycursor.fetchall()
return render_template('index.html', data_sets=data_sets)
# 展示数据集详细信息
@app.route('/data_set/<int:data_set_id>')
def show_data_set(data_set_id):
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM data_set WHERE id = %s", (data_set_id,))
data_set = mycursor.fetchone()
mycursor.execute("SELECT * FROM comments WHERE data_set_id = %s", (data_set_id,))
comments = mycursor.fetchall()
return render_template('data_set.html', data_set=data_set, comments=comments)
# 添加评论
@app.route('/data_set/<int:data_set_id>/add_comment', methods=['POST'])
def add_comment(data_set_id):
user_name = request.form['user_name']
comment_text = request.form['comment_text']
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO comments (data_set_id, user_name, comment_text) VALUES (%s, %s, %s)", (data_set_id, user_name, comment_text))
mydb.commit()
return redirect(url_for('show_data_set', data_set_id=data_set_id))
# 删除评论
@app.route('/data_set/<int:data_set_id>/delete_comment/<int:comment_id>')
def delete_comment(data_set_id, comment_id):
mycursor = mydb.cursor()
mycursor.execute("DELETE FROM comments WHERE id = %s", (comment_id,))
mydb.commit()
return redirect(url_for('show_data_set', data_set_id=data_set_id))
# 点赞
@app.route('/data_set/<int:data_set_id>/like')
def like(data_set_id):
user_name = request.args.get('user_name')
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM likes WHERE data_set_id = %s AND user_name = %s", (data_set_id, user_name))
like = mycursor.fetchone()
if like:
# 用户已经点过赞了,取消点赞
mycursor.execute("DELETE FROM likes WHERE id = %s", (like[0],))
mydb.commit()
else:
# 用户还没有点赞,添加点赞
mycursor.execute("INSERT INTO likes (data_set_id, user_name) VALUES (%s, %s)", (data_set_id, user_name))
mydb.commit()
return redirect(url_for('show_data_set', data_set_id=data_set_id))
if __name__ == '__main__':
app.run()
```
在templates文件夹中创建两个html模板文件:index.html和data_set.html,用于展示首页和数据集详细信息。
index.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>数据管理系统</title>
</head>
<body>
<h1>数据管理系统</h1>
{% for data_set in data_sets %}
<div>
<h2>{{ data_set.name }}</h2>
<p>{{ data_set.description }}</p>
<a href="{{ data_set.download_link }}">下载</a>
<p>点赞数:{{ data_set.likes }},踩数:{{ data_set.dislikes }}</p>
</div>
{% endfor %}
</body>
</html>
```
data_set.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>{{ data_set.name }}</title>
</head>
<body>
<h1>{{ data_set.name }}</h1>
<p>{{ data_set.description }}</p>
<a href="{{ data_set.download_link }}">下载</a>
<p>点赞数:{{ data_set.likes }},踩数:{{ data_set.dislikes }}</p>
<h2>评论</h2>
{% for comment in comments %}
<div>
<p>{{ comment.comment_text }}</p>
<p>用户:{{ comment.user_name }}</p>
<a href="/data_set/{{ data_set.id }}/delete_comment/{{ comment.id }}">删除</a>
</div>
{% endfor %}
<form action="/data_set/{{ data_set.id }}/add_comment" method="post">
<label for="user_name">用户名:</label>
<input type="text" id="user_name" name="user_name">
<br>
<label for="comment_text">评论内容:</label>
<textarea id="comment_text" name="comment_text"></textarea>
<br>
<input type="submit" value="提交评论">
</form>
<br>
<a href="/data_set/{{ data_set.id }}/like?user_name={{ user_name }}">点赞</a>
</body>
</html>
```
这些代码实现了一个简单的数据管理系统,可以展示数据集详细信息,添加评论、删除评论、点赞等功能。在首页展示关注度最高或者下载量最大的数据集。
阅读全文