利用Flask搭建一个简易的博客网站(1)

主要基本结构

Flask 是一个方便简洁的web搭建的python框架,如果刚刚学习完python基础,可以尝试利用Flask 搭建一个简易的博客网站。

本文旨在利用我为数不多的python知识和搭配网上的教程 (主要来源于实验楼的教程)提供一个较为全面(不)的self-reflection。 这篇文章也用于帮助我理顺搭建服务器时的思路和具体一些功能实现的再摸索。

首先确定这个服务器的基础结构:下面是project的packages结构:

  • handlers
    • init.py
    • front.py
    • user.py
  • scripts
    • generate_fake_data.py
  • static
  • migrations
  • templates
    • users
    • front
  • app.py
  • config.py
  • decorator.py
  • email_app.py
  • forms.py
  • manage.py
  • models.py

flaska 是自己给这个服务器取得名字(无所谓), handlers是用来处理view function 的文件夹,包括user.py和front.py.

这里顺便补充一下什么是view function, 如果要了解view function, 我们需要懂得什么是MVT software design pattern. MVT means Model, View, and Template. It is a popular pattern or model to design a web server of software by using Flask or Django.

I can briefly introduce this concept by showing a picture, and this is more straightforward as well.

  • A flowchart of how MVT works
  • Stack way of thinking MVT

To talk about the view part in this chart, what I simply think about the view is the logic behind the webpage, which directs how will one link connects to another link in the webserver. Also, it is used to help to know in what circumstance the webpage is available to a certain user or not. Generally, it is the logic behind the webserver.

Model(模块) refers to where ORM mapping located in the server framework.
我们想要把数据库的关系表(我使用的是relational database)能够简易地在py file 里得到使用,这个时候就得使用 ORM 把关系映射到类里。比如把一个表映射成一个类。

Template(样板)属于前端内容,即我们要为客户呈现什么样的内容,具体布局是怎样的,我们就需要利用 html,css,js来实现。我们在view里调用样板,来达到某个网页链接呈现某个页面的效果。

整个的流程能够通过图一来得到完整的诠释。即 model是数据库的映射,template是具体网页的呈现,view是服务器内部的运用template的逻辑。

view还会create, update, delete 数据库,比如我们创建新用户时,就是在更新数据库。view也提供数据用来呈现给用户。反过来样板会传入用户的form用以更新数据库。

好了,handlers和templates解释完毕。scripts在这里主要用于测试用。static是静态文件,即我们网站的图标和css文件存储于此。

介绍完了基本的package 结构,主要的几个modules一一来说。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!