Skip to content

用python+flask写的一个小型问题发布论坛

Notifications You must be signed in to change notification settings

yxr70/Flask_web_demo1

 
 

Repository files navigation

小型问答平台

简介

本项目是一个小型的论坛系统,采用Python + Flask + MySQL进行开发, 前端用的是bootstrap框架,界面比较的简单。 用户可以进行问答的发布、问答。主要的功能包括:注册、登录、首页界面、发布问答、查询问答、评论, 头像显示。是我学习Flask时候的一个练手小项目。

使用方法

  • 克隆项目到本地
git clone https://github.com/rickyyangrui/Flask_web_demo1
  • 先创建一个虚拟环境,避免污染整个Python的环境。
pip install virtualenv
  • 创建一个文件夹,名字:Virtualenv
mkdir Virtualenv
cd Virtualenv
  • 创建一个虚拟环境 venv
virtualenv venv
  • 激活虚拟环境(因为我在win上面搞的,这里启动环境的命令很蛋疼,我不喜欢用,我是直接进入到venv -> Scripts目录下,输入activate直接打开虚拟环境)
cd venv
cd Scripts
activate
  • 不需要时候可以关闭
deactivate

不过假如我们有pycharm的话,那都不是事,创建环境小意思,Python程序员的利器,直接全部搞定。

  • 安装我们所需要的各种包
pip install -r requirements.txt
  • 假定大家都安装好了MySQL,我们去创建一个databases,在mysql命令行中输入:
create database you_database_name charset urf-8;
  • 修改下我们的配置文件,config中的数据库配置。
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@localhost/you_database_name'
  • 使用Flask中强大的sqlalchemy -> Flask-Migrate;来实现数据库的迁移
python manage.py db init     # 创建迁移的仓库
Python manage.py db migrate  # 创建迁移的脚本
python manage.py db upgrade  # 更新数据库
  • 在pycharm中直接启动platform程序,或者:
python manage.py runserver

网站的截图

登录的界面 Login 注册的界面 注册 首页 首页 发布问答 发布问答 评论 首页

思路分析

要做一个复杂的站点的时候,往往我们不知道如何入手,通常我们可以分解下,先做一个大概的模型,结构,分析一下我们要做的网页的结构都有什么?比如简书,知乎,微博等等,先做大体的结构,至于具体的功能可以慢慢的添加。

  • 搭建好我们的项目骨架,项目启动的环境等等。

  • 想好我们的界面是什么样子的,不知道的话,找个简单的站点看看,看看别人的整体样式,然后,去bootstrap中文网,搜搜我们需要的样式,哈哈,可以直接复制,粘贴过来,当然有能力的可以直接自己写。

就比如知乎的样式: 知乎

我们可以看出,知乎的首页界面还是比较的简洁的,我们也可以做出来,只不过他有很多复杂的功能,我们可以先不做。首页由导航栏(知乎图标、首页、发现、话题、搜索、提问、通知、私信、用户信息),以及下面的内容组成。功能比我们自己做的多。

我们需要的就是去修改一下你Bootstrap中复制过来的内容,改成我们自己需要的,简化一下功能,通知,私信等等就不要了。

  • 知乎上面点击首页,发现,话题等,导航栏会变,我们自己做的可以,简化一下,点击导航栏上面的东西,都是用同一个导航栏,这里就可以做父模板抽离,先做一个base模板,点击不用的button,显示不同的界面,我们只需要继承base模板,修改一下,做成不同的子模板。

  • 然后做登录,注册,注销的样式。要实现登录和注册,先做好登录,注册的界面,然后我们还需要做一个User模型,也就是models.py模块,做好模型之后,把他映射到数据库的表之中,也就是我们的manage.py中,这里就涉及到数据库的SQLalchemy,做完之后,就可以完成登录,注册,注销的功能了。

  • 接下来,我们就去做发布问答的界面,登录限制,发布问答的功能-> 首页布局 -> 首页功能 -> 问答详情界面 -> 评论 -> 查找。

  • 总体的思路就是先做好界面,需要什么,我们就慢慢的添加,太难的做不出来,简单的还会没问题的。

这里推荐一本书《Flask Web开发:基于Python的Web应用开发实战》

About

用python+flask写的一个小型问题发布论坛

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 55.0%
  • HTML 37.2%
  • CSS 5.7%
  • Mako 2.1%