# MemoryCache
一个基于Flask、MySQL和Bootstrap开发的图片分享社交网站。
## 特性
- 实现了feed流、图片管理、收藏关注、消息提醒、热门推荐、用户资料管理等基础社交功能
- 实现了完整的用户注册流程与基于角色的权限控制
- 提供用户管理、资源管理、用户资料编辑等后台功能
- 使用SQLAlchemy作为ORM实现关注、收藏、标签等多对多关系和联结分组查询
- 通过AJAX实现动态获取用户资料并执行异步交互
- 使用Dropzone.js、Pillow实现图片文件的上传与尺寸处理
- 使用Whooshee实现全文搜索
- 支持 Docker + Nginx + Gunicorn + MySQL 快速部署
## 预览
首页
![index](http://pp0zvba2e.bkt.clouddn.com/2019-04-21%2023-31-12%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)
图片详情页
![photo](http://pp0zvba2e.bkt.clouddn.com/2019-04-21%2023-31-22%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)
个人主页
![user](http://pp0zvba2e.bkt.clouddn.com/2019-04-21%2023-31-30%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)
管理后台
![dashboard](http://pp0zvba2e.bkt.clouddn.com/2019-04-21%2023-34-37%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)
## 运行
### 从源码运行
1. 安装 MySQL 并按‘mysql'文件夹中的sql脚本创建数据库。
2. 切换到项目根目录下的 `app` 文件夹。
3. 创建虚拟环境并根据 `Pipfile` 或 `requirements.txt` 安装依赖(推荐使用 Pipenv)。
4. (可选)在当前目录创建 `.env` 配置文件,根据 `./memory_cache/settings.py` 文件中的配置项修改应用配置。
5. 在虚拟环境下,运行 `flask run` 命令以调试模式启动应用。
开发环境下可使用 `flask forge` 命令生成测试数据(含管理员账户),`flask dropdb` 命令清空数据库。
### 通过 Docker 运行(推荐)
推荐使用 Docker 运行项目,仓库中还包含了 MySQL、Nginx 和 Gunicorn 在部署环境下的配置文件,通过 Docker 可以做到自动化快速部署。
使用前请确保已经正确安装 docker 与 docker-compose 。(建议配置国内的加速镜像源)
#### 首次运行
**1\. 获取 MemoryCache 镜像**
在命令行中切换到项目根目录,运行以下命令构建 MemoryCache 镜像:
```bash
$ (sudo) docker build app/ -t memorycache:0.1
# 该命令将根据 app/ 文件夹下的 Dockerfile 构建镜像
```
默认的 Gunicorn 运行参数可在 Dockerfile 中修改,然后重新构建镜像。
**2\. 修改编排容器的配置文件(可跳过)**
a. 修改 `docker-compose.yml`
切换到项目根目录下的 `compose` 文件夹。出于安全考虑,你需要对 `docker-compose.yml` 文件中的环境变量进行适当修改(开发环境可跳过以下步骤),以下是修改项:
- `MYSQL_ROOT_PASSWORD: my-secret-pw`: MySQL的root用户密码
- `MYSQL_DATABASE: memorycache`: 为该数据库创建指定用户并授予ALL权限
- `MYSQL_USER: waynerv`: 创建用户的用户名
- `MYSQL_PASSWORD: example`: 创建用户的密码
b. 修改 Nginx 配置
部署环境下还需要修改项目根目录下 `nginx/project.conf` 文件,对 Nginx 的转发配置进行修改,如:
```bash
server_name localhost;
# localhost 改成映射的域名
```
**3\. 运行容器**
切换到根目录下的 `compose` 文件夹,运行以下命令:
```bash
$ (sudo) docker-compose up -d
```
容器首次启动需要30秒左右,然后你就可以在浏览器中通过 `http://localhost:80` 或映射的域名访问MemoryCache 了。
**4. 进入 MemoryCache 容器**
如果你想进入 MemoryCache 应用容器的内部,可执行以下命令:
```bash
$ (sudo) docker exec -it blog ash
# orginblog 运行在alpine(一个极简Linux)环境中,ash=alpine shell
```
#### 首次运行后
- 关闭 MemoryCache
```bash
$ (sudo) docker-compose stop
```
- 启动 MemoryCache
```bash
$ (sudo) docker-compose start
```
- 删除 MemoryCache
```bash
$ (sudo) docker-compose down
```
`docker-compose` 命令应在切换到根目录下 `compose/` 文件夹中时执行。
容器运行时产生的数据包括数据库文件可通过 `docker volume` 进行删除、备份等操作。
### 使用 MemoryCache
#### 1\. 创建管理员账户
以 `APP_ADMIN_EMAIL` 环境参数值为邮箱注册的用户将成为管理员。
开发环境下可使用 `Role` 模型的 `init` 方法重置角色权限。
#### 2\. 进入管理后台
登录后通过首页右上角 `USER` 下拉菜单的 `Dashboard` 进入管理后台。
## 许可证
MIT
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 Python优秀项目 基于Flask+Bootstrap+MySQL的图片分享社交网站源码+部署文档+全部数据资料.zip 1、代码压缩包内容 代码的项目文件 部署文档文件 2、代码运行版本 python3.7或者3.7以上的版本;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细) 3、运行操作步骤 步骤一:将代码的项目目录使用IDEA打开(IDEA要配置好python环境) 步骤二:根据部署文档或运行提示安装项目所需的库 步骤三:IDEA点击运行,等待程序服务启动完成 4、python资讯 如需要其他python项目的定制服务,可后台私信博主(注明你的项目需求) 4.1 python或人工智能项目辅导 4.2 python或人工智能程序定制 4.3 python科研合作 Django、Flask、Pytorch、Scrapy、PyQt、爬虫、可视化、大数据、推荐系统、人工智能、大模型
资源推荐
资源详情
资源评论
收起资源包目录
Python优秀项目 基于Flask+Bootstrap+MySQL的图片分享社交网站源码+部署文档+全部数据资料.zip (2000个子文件)
bootstrap.css 185KB
bootstrap.min.css 150KB
open-iconic-foundation.css 16KB
open-iconic-foundation.min.css 14KB
open-iconic.css 14KB
open-iconic.min.css 12KB
open-iconic-bootstrap.css 11KB
dropzone.min.css 9KB
open-iconic-bootstrap.min.css 9KB
style.css 4KB
jquery.Jcrop.css 3KB
jquery.Jcrop.min.css 2KB
open-iconic.eot 28KB
.flaskenv 44B
FONT-LICENSE 4KB
open-iconic.html 23KB
sprite.html 18KB
base.html 7KB
_comment.html 6KB
macros.html 6KB
_photo_sidebar.html 6KB
manage_user.html 6KB
index.html 5KB
_header.html 4KB
manage_photo.html 4KB
photo.html 4KB
notifications.html 3KB
manage_comment.html 3KB
profile_popup.html 2KB
search.html 2KB
manage_tag.html 2KB
index.html 2KB
_sidebar.html 1KB
tag.html 1KB
collections.html 1KB
change_avatar.html 1KB
followers.html 1KB
following.html 1KB
index.html 1KB
collectors.html 1KB
base.html 1004B
login.html 979B
edit_profile.html 960B
register.html 939B
upload.html 887B
explore.html 528B
reset_password.html 489B
edit_notification.html 372B
change_password.html 368B
delete_account.html 366B
confirm.html 365B
edit_profile.html 362B
edit_privacy.html 362B
change_email.html 362B
reset_password.html 317B
change_email.html 311B
ICON-LICENSE 1KB
moment-with-locales.js 399KB
bootstrap.js 123KB
jquery.min.js 91KB
jquery-3.3.1.min.js 85KB
bootstrap.min.js 54KB
dropzone.min.js 42KB
jquery.Jcrop.js 41KB
popper.min.js 20KB
jquery.color.js 16KB
jquery.Jcrop.min.js 16KB
script.js 6KB
package.json 912B
bower.json 409B
open-iconic-foundation.less 16KB
open-iconic.less 14KB
open-iconic-bootstrap.less 11KB
python系统部署文档.md 14KB
README.md 4KB
Flask系统部署文档.md 4KB
README.md 3KB
README.md 2KB
open-iconic.otf 21KB
Pipfile 459B
target-8x.png 2KB
dashboard-8x.png 2KB
globe-8x.png 2KB
compass-8x.png 2KB
rss-8x.png 1KB
paperclip-8x.png 1KB
timer-8x.png 1KB
clock-8x.png 1KB
aperture-8x.png 1KB
ban-8x.png 1KB
zoom-in-8x.png 1KB
zoom-out-8x.png 1KB
magnifying-glass-8x.png 1KB
rss-alt-8x.png 1KB
bug-8x.png 1KB
audio-8x.png 1KB
link-intact-8x.png 1KB
target-6x.png 1KB
power-standby-8x.png 1KB
cog-8x.png 1KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
IT狂飙
- 粉丝: 4824
- 资源: 2654
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功