基于 flask 框架的模拟instagram 图片分享网站的开发

news/2024/5/12 20:17:59/文章来源:https://blog.csdn.net/zhyh1435589631/article/details/51787577

1. 前言

我们的目标是模拟instagram 制作一个图片分享的网站, 我们这里选用的是 flask 框架, 这个框架小巧, 易于扩展, 简单易用

2. 基本思路

  1. 利用sqlalchemy 构建 数据库 orm, 建立 user, image, comment 对象, 存放图片url, 等各种相关信息
  2. 利用 jinja 的模板功能, 提供便利的前端显示

3. 基本流程

  1. 构建flask 项目框架, 如下图所示

    • static 用来放置基本的图片, css, js 等前端文件
    • templates 用来放置需要渲染的网页模板
    • models 用来构建数据库表 的 ORM 模型
    • views 用来解析网页路径, 提供一个网页接口
    • manage 用来提供一些基本的配置指令
    • runserver 用来启动服务器
    • app.conf 用来设置一些全局配置信息
      这里写图片描述
  2. 构建一个 全局的 flask 对象

    • 这个对象, 本质上, 就是这个网站
      app = Flask(__name__)
      app.jinja_env.add_extension('jinja2.ext.loopcontrols')
      app.config.from_pyfile('app.conf')
      db = SQLAlchemy(app)

    这样, flask 的相关配置就可以直接写在 app.conf 中, 比如切换底层数据库等, 非常方便

  3. 利用 sqlalchemy 构建数据库 orm 模型

    • 这里以 建立 user 表 为例
      class User(db.Model):id = db.Column(db.Integer, primary_key=True, autoincrement=True)username = db.Column(db.String(80), unique=True)password = db.Column(db.String(32))head_url = db.Column(db.String(256))  # 头像的urlimages = db.relationship('Image', backref='user', lazy = 'dynamic')#images = db.relationship('Image')def __init__(self, username, password):self.username = usernameself.password = passwordself.head_url = u'static/yurisa/' + unicode(random.randint(0, 100)) + u'.jpg'def __repr__(self):return '<User %d, name = %s, password = %s, head_url = %s' % (self.id, self.username, self.password, self.head_url)

    这里面, 需要解释一下 relationship, 这里面通过 images 建立起 User 表和Image 表之间的联系, 可以方便的从User 表来访问 Image 表, 当然, 由于还建立了 backref 关系, 也支持 从 Image 表 访问 User 表信息。

    • 类似的可以建立 Comment 表 和 Image 表
  4. 建立 浏览器访问路由

    @app.route('/')
    def index():images = Image.query.order_by('id desc').limit(10).all()return render_template('index.html', images = images)

    这里面需要注意的是, 他使用了 render_template 来渲染 我们预先设定的 index.html 模板, 支持 后端的数据 images 的传入

4. 遇到的坑

  1. template not found
    这里写图片描述
    这个问题, 主要是我们 的static 和 templates 的文件夹目录放错位置了, 应该在 application 下面

  2. python version 2.7 is required, which is not found in the registry
    这里写图片描述
    这个主要是我们安装了 64 bit 的python 所导致的, 解决方法:
    http://jinbitou.net/2015/10/17/563.html

  3. dll load failed
    这里写图片描述
    这个原因还是在于, 我们安装的python 是 64bit 的, 而从官网下载的 mysqldb 是 32bit 的, 不兼容, 解决方法:
    http://blog.csdn.net/seven_zhao/article/details/16945043

  4. unknown database
    这里写图片描述
    这个原因主要是, mysql 中没有对应的 instagram 数据库, 预先建立一个就好了

5. 初步效果

图片详情页
这里写图片描述
主页
这里写图片描述
个人信息页
这里写图片描述

6. 项目地址

https://code.csdn.net/zhyh1435589631/instagram_simulation/tree/master

7. 结尾

我们的这个项目现在写的还是比较简单, 只是实现了一些最基本的功能(本质上, 只是读取数据库里面的相关内容), 后面将逐步添加一些登陆,注册等功能, 来完善这个项目

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

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

相关文章

基于 flask 框架的模拟instagram 图片分享网站的开发 2

1. 前言 我们之前写过一篇博文http://blog.csdn.net/zhyh1435589631/article/details/51787577&#xff0c; 在那篇博文里面&#xff0c; 我们完成了instagram 网站开发的几个基本功能&#xff0c; 包括首页展示&#xff0c; 个人信息页面显示&#xff0c; 图片详情页面展示等…

基于 flask 框架的模拟instagram 图片分享网站的开发 3

1. 摘要 这次添加的功能是 实现首页和 个人信息页面的异步加载功能 传送门&#xff1a; 基于 flask 框架的模拟instagram 图片分享网站的开发 2 基于 flask 框架的模拟instagram 图片分享网站的开发 1 2. 流程 2.1 profile.js 分析 这里需要编写相应的js 代码&#xff0…

基于 flask 框架的模拟instagram 图片分享网站的开发 4

1. 摘要 这次添加的功能是 个人页图片上传功能和图片详情页评论异步加载功能 传送门&#xff1a; 基于 flask 框架的模拟instagram 图片分享网站的开发 3 基于 flask 框架的模拟instagram 图片分享网站的开发 2 基于 flask 框架的模拟instagram 图片分享网站的开发 1 2. …

基于 flask 框架的模拟instagram 图片分享网站的开发 7 (爬虫机器人)

1. 前言 我们之前使用flask实现了一个模拟instagram的图片分享网站的开发&#xff0c; 但是图片的更新需要用户上传&#xff0c; 但是由于用户比较少&#xff0c; 鉴于这个问题&#xff0c; 我们就考虑引入一个爬虫机器人&#xff0c; 自动的向web程序相关的数据库表项中写入数…

url带斜杠和不带斜杠对seo优化的影响

点我进入原文 ps: seo 是指搜索引擎优化 url带斜杠和不带斜杠对seo优化的影响 作为seo的专员对于这个问题&#xff0c;我觉得很多细心的人都能发现&#xff0c;这二者的区别&#xff0c;但是不知道其中奥妙。今天博主给大家说说关于搜索引擎网址中带/与不带/对于seo的影响。 在…

高并发高流量网站架构

http://blog.csdn.net/SmartTony/archive/2010/09/09/5874485.aspx Web2.0的兴起&#xff0c;掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念&#xff0c;细分了网站功能和用户群&#xff0c;不仅成功的造就了一大批新生的网站&#xff0c;也极大的方便了上网…

从“奥运门票网站800万访问量”想到的成本、质量、进度、风险等关系

看到这个新闻后颇有一番滋味&#xff0c;更体验到我一直关注的软件性能着实无处不在&#xff0c;这个案例也确实值得我们好好反思一下。 不知道网友们有没有报名参加国际日语考试的——这个网站每年05年前都有人不能报名&#xff0c;因为报名人数太多&#xff0c;所以报名当日大…

h5跳微信小程序流程实现——使用云函数,不开通静态网站

官方开源库&#xff1a; GitHub TCloudBase/WXSEVER-SMS 参考教程&#xff1a; https://developers.weixin.qq.com/community/develop/doc/000ae2a7a7c9402a4d8bca2875b409 此教程为官方提供&#xff0c;包含视频文档 步骤&#xff1a; 1. 开通云开发 2. 新建云函数 ope…

搜索引擎SEO外挂:一边搜索,一边看PageRank

搜索引擎SEO外挂&#xff1a;一边搜索&#xff0c;一边看PageRank 下载地址&#xff1a;多么乐站长工具 我原来曾写过一篇统计分析搜索引擎排名和Page Rank 关联分析 的文章。很多人引用&#xff0c;回复和我讨论了我的结论。有赞成的&#xff0c;有反对的&#xff0c;有鼓励的…

seo优化:把百度放进数据库

seo优化:把百度放进数据库 有时候我想&#xff0c;能把百度的数据放进数据库&#xff0c;用广大程序员熟悉的sql语句查询百度的搜索结果应该是一个不错的主意。在这方面Google早已经跨出了一大步&#xff0c;利用Google Search API 把Google的搜索结果放进数据库是很容易办到得…

商业网站 第八章 注册登陆模板设计

注册——插入记录 服务器行为——添加——插入记录——连接:web_ljdata——插入到表格&#xff1a;T_user——获取值自&#xff1a;form1(注册表单&#xff09;——表单元素——注册成功后&#xff1a;插入后转到&#xff08;注册成功表单&#xff09; 验证登陆信息 数据库面板…

网站推荐机制中的艺术、科学与商务问题

网站推荐机制是电子商务或内容网站的核心功能之一。例如你在一个网站买了一本书后&#xff0c;网站会推荐其他你可能会感兴趣的书。这被认为是亚马逊等电子商务巨头成功的关键。本文对几个出色的推荐系统进行了较透彻的分析。 2006年10月&#xff0c;Netflix搞了一次不寻常的有…

平面设计素材网站-庞姿姿

哈喽&#xff0c;大家好&#xff01;今天为大家分享的是免费的平面设计素材网站&#xff0c;设计类网站是大家在所难免需要的了吧&#xff0c;下面就是我发现的比较好用的免费的平面设计素材网站&#xff0c;感兴趣的小伙伴看过来&#xff0c;如果你还发现其它好的网站评论一起…

OpenCms创建网站过程图解——献给OpenCms的初学者们

很多人都听说了OpenCms&#xff0c;知道了它的强大&#xff0c;索性的下载安装了&#xff0c;终于见到了久违OpenCms&#xff0c;看到了它简洁的界面&#xff0c;欣喜过后却不免一脸茫然&#xff0c;这个东西怎么用&#xff0c;我怎么用它来建站&#xff0c;从哪开始&#xff0…

视觉素材-免费高清!10个无版权限制的大图特供网站

今天为大家整理目前优秀的提供免费图片素材资源网站&#xff0c;这些网站的图片质量相当高&#xff0c;大部分为高分辨率&#xff08;高解析&#xff09;&#xff0c;并且&#xff0c;最重要的是&#xff0c;它是免费的&#xff0c;无版权限制&#xff01;同时具备免费、高清&a…

获取任意网站的图标,标题栏logo,网站logo的方法

不错呦~我想要这个图标怎么办呢&#xff1f; 直接使用网址加上&#xff1a; https://csdn.net/favicon.ico 获取到了 说明&#xff1a;这种方法适用于百分之九十的站点&#xff0c;如果你有想要使用的LOGO或者ico可以使用此方法简单获取。

【引用】iphone开发的好网站

分享iphone开发的好网站&#xff0c;希望大家也能提供一些分享下 收藏 1、http://developer.apple.com/iphone/library 这个是官方的代码实例 2、www.cocoachina.com 这个网站比较适合初期开发者&#xff0c;上面的版主之类的也比较热心&#xff0c;一般的问题都会提供帮助 3…

[.Net Core学习一]网站发布

1.首先点击图片IIS上的模块 判断是否存在 如果没有去官网下载 安装好后 按照formwork版发布即可 结果

功能超全的在线文件转换网站

转自http://blog.360converter.com/archives/1314 最近在做一个图标&#xff0c;找了很多的网站&#xff0c;有些根本就不能转换&#xff0c;有些可以转换&#xff0c;不过转换的出来的icon文件超级大&#xff0c;一个6464的icon转换出来达到了几百k&#xff0c;甚至上1M。不过…