利用 Flask 搭建自己的博客网站(一)

利用 Flask 搭建自己的博客网站(一)—— 创建项目

使用虚拟环境

首先,使用 pipenv 安装虚拟环境:

pipenv install

默认会安装 Python 的最新版本,如果需要指定 Python 版本,可以使用

pipenv install --python 3.6

这样就会安装 Python 3.6 版本。环境安装完成后,会在当前目录下出现两个文件

  • Pipfile
  • Pipfile.lock

接着,进入虚拟环境,安装需要使用的安装包:

pipenv shell
pipenv install flask flask-sqlalchemy flask-admin flask-wtf flask-login flask-moment

其中,flask-sqlalchemy 用来管理数据库,flask-admin 用以提供具备图形化界面的后台管理支持,flask-wtf 用以表单管理,flask-login 则用以管理登录和登录上下文环境。安装完成后,就可以开始搭建网站的框架了。

搭建框架

网站需求分析

对于我的博客系统,我希望使用 UIKit 来进行前端的美化,Bootstrap 4 进行后台的界面美化,因此我在项目初期便引入了这两个库。我将所有 Blueprint 文件放到了 app 文件夹中,我希望我的博客系统可以实现的功能有:

  • 用户功能
    • 用户注册与登陆
    • 发送确认邮件
    • 用户修改密码与邮箱
    • 用户找回密码
    • 用户关注某一分类
    • 用户浏览文章
    • 用户收藏文章
    • 用户点赞文章
    • 用户评论文章
    • 用户转发文章
  • 后台管理
    • 增删查改文章与分类信息
    • 用户管理
    • 用户评论管理
    • 利用 Markdown 写文章
    • Markdown 的实时预览

因此,我的初始工程目录如下:

├── Pipfile
├── Pipfile.lock
├── app
│   ├── __init__.py
│   ├── auth
│   │   ├── __init__.py
│   │   ├── forms.py
│   │   ├── models.py
│   │   └── views.py
│   ├── email.py
│   ├── main
│   │   ├── __init__.py
│   │   ├── forms.py
│   │   ├── models.py
│   │   └── views.py
│   ├── static
│   │   ├── admin
│   │   │   ├── css
│   │   │   │   └── styles.css
│   │   │   └── js
│   │   │       ├── bootstrap.bundle.min.js
│   │   │       ├── bootstrap.bundle.min.js.map
│   │   │       ├── bootstrap.min.js
│   │   ├── css
│   │   │   ├── font-awesome.min.css
│   │   │   ├── styles.css
│   │   │   ├── uikit-rtl.min.css
│   │   │   └── uikit.min.css
│   │   ├── images
│   │   │   ├── cover.png
│   │   │   ├── logo.png
│   │   ├── js
│   │   │   ├── font-awesome.min.js
│   │   │   ├── jquery.min.js
│   │   │   ├── moment.min.js
│   │   │   ├── scripts.js
│   │   │   ├── uikit-icons.min.js
│   │   │   └── uikit.min.js
│   │   └── webfonts
│   ├── templates
│   │   ├── auth
│   │   ├── base.html
│   │   ├── main
│   │   └── site_admin
│   ├── utils.py
│   └── views.py
├── config.py
├── app.py
├── tests
└── uploads
    └── post_images

然后,就可以开始着手写代码了。

你可能感兴趣的:(项目笔记)