首页 > 其他分享 >Flask 开发个人博客简单示例

Flask 开发个人博客简单示例

时间:2023-06-08 14:08:01浏览次数:42  
标签:示例 Flask 创建 app db 博客 flask 步骤

步骤1:准备工作 首先,确保您已经安装了Python和pip。然后,创建一个新的文件夹来存放项目,并在命令行中进入该文件夹。

步骤2:创建虚拟环境 为了隔离项目的依赖和环境,我们建议在项目文件夹中创建一个虚拟环境。在命令行中运行以下命令:

python -m venv venv

这将创建一个名为venv的虚拟环境文件夹。

步骤3:激活虚拟环境 根据您使用的操作系统,在命令行中运行适当的命令来激活虚拟环境:

在Windows上:

venv\Scripts\activate

在Mac和Linux上:

source venv/bin/activate

步骤4:安装Flask和其他依赖 在激活的虚拟环境中,运行以下命令来安装Flask和其他所需的依赖:

pip install Flask
pip install flask_sqlalchemy
pip install flask_migrate
pip install flask_wtf

步骤5:创建Flask应用 在项目文件夹中,创建一个新的Python文件,例如app.py,并在文件中导入所需的模块和扩展:

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField
from wtforms.validators import DataRequired

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db'
app.config['SECRET_KEY'] = 'your-secret-key'

db = SQLAlchemy(app)
migrate = Migrate(app, db)

步骤6:定义数据模型 在app.py文件中,定义一个数据模型来表示博客文章。例如,以下代码定义了一个名为Post的数据模型:

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)

步骤7:创建数据库迁移 在命令行中运行以下命令,创建数据库迁移所需的文件:

flask db init

然后,运行以下命令来生成初始迁移:

flask db migrate -m "Initial migration"

最后,应用迁移并创建数据库表:

flask db upgrade

步骤8:创建表单 在app.py文件中,定义一个表单类来处理博客文章的创建。例如,以下代码定义了一个名为PostForm的表单类:

class PostForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    content = TextAreaField('Content', validators=[DataRequired

步骤9:创建视图函数和路由 在app.py文件中,创建视图函数和路由来处理不同的页面和功能。以下是几个基本的视图函数示例:

@app.route('/')
def index():
    posts = Post.query.all()
    return render_template('index.html', posts=posts)

@app.route('/post/create', methods=['GET', 'POST'])
def create_post():
    form = PostForm()
    if form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        post = Post(title=title, content=content)
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template('create_post.html', form=form)

步骤10:创建模板文件 在项目文件夹中创建一个名为templates的文件夹,并在其中创建以下模板文件:

  • index.html:用于显示博客文章列表的模板。
  • create_post.html:用于创建新博客文章的模板。

在模板文件中,您可以使用Flask提供的模板语法来渲染动态内容,并使用表单来接收用户输入。

步骤11:运行应用 在命令行中运行以下命令,启动Flask应用:

flask run

现在,您可以通过访问http://localhost:5000来查看您的个人博客网站。

这只是一个简单的教程示例,希望这个教程能对您有所帮助。

标签:示例,Flask,创建,app,db,博客,flask,步骤
From: https://blog.51cto.com/u_15706023/6439376

相关文章

  • 初学者必看!Mock.js 示例详解
    Mock.js基础用法介绍Mock.js是一个常用于生成随机数据和拦截Ajax请求的JavaScript库。本文将介绍Mock.js的用法,包括安装和基础用法,在开始前我们可以看下看:了解Mock.js的语法规范。安装可以通过npm安装Mock.js:npm install mockjs基础用法随机生成一个用户信息使用Mock.js可以很......
  • python 安装包、基础学习资料、代码应用示例
    安装包python-3.7.0.rar链接:https://pan.baidu.com/s/1Gl5QUMrLFoTekENighd0iw提取码:ysgxpycharm5.0.3.zip链接:https://pan.baidu.com/s/1DpzRiMWSW2byWjB1cYmQKw提取码:9rgiAnaconda3jupyternotebook第一步进入:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/第......
  • 博客与笔记
    最近发现语雀的会员在今年9月即将过期,这意味着不能接下来语雀对我来说更类似于笔记软件,不能再发布内容了。笔记更像是自己不成熟的纪录,博客更多的是将解决问题的步骤作为可以分享的经验发布出来。 芥川龙之介曾经有写过一段随笔:“我有候会想,二十年后,五十年后,甚或一百年后的事。......
  • 12_How to deploy Flask apps on Ubuntu VPS Using gunicorn and Ngnix
      地址:https://www.codewithharry.com/blogpost/flask-app-deploy-using-gunicorn-nginx/ HowtodeployflaskapponUbuntuVPSusingNginxandgunicornInthispost,wewillseehowtodeployflaskapplicationsusinggunicornWSGIserverandnginxasarev......
  • Flask Response
    FlaskResponseresponse服务端向客户端发送的响应响应的几种方式1.返回字符串(不常用)return'responseOK!'2.模板渲染(前后端不分离的情况)fromflaskimportrender_templatereturnrender_template('index.html',name='张三',age=33)3.返回json数据(一般前后端分离的......
  • sed命令简单使用示例分享
    Linux命令sed是“streameditor”的缩写,也就是流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变......
  • element ui 中获取级联积极下拉框的示例
      <el-form-itemlabel="班组"prop="bz">              <el-cascader:options="orgTreeData"ref="bzNameRef":show-all-levels="false"                :props="{che......
  • 搭建博客须知
    title:搭建个人博客须知date:2022-08-2313:03:02top:1该Hexo博客所需的配置文件已经下好了,但是还需要配置Node.js和Git环境以及Hexo框架,基础的博客功能能够正常使用,比如创建的文章上传到服务器上,能够正常显示图片,但是显示图片的功能需要自己开启。图片显示的打开方法,打开......
  • [Kyana]动态博客的使用
    00|apache2+php+mysqlaptinstallapache2phpphp-fpmmysql-servera2enmodproxy_fcgisetenvif#php的网关代理a2enconfphp-fpmsystemctlenableapache2/php-fpm/mysqlserviceapache2/php-fpm/mysqlstartmysql-urootcreatedatabasetypecho;usertype@localho......
  • 博客园使用教程
    博客园注册按照引导注册账号申请写博客权限申请JS权限博客园美化选择SimpleMemory博客皮肤侧边栏界面美化在侧边栏公告处粘贴代码引用美化网址:https://zhangheheya.notion.site/9cfdff177556457f94cd08ef26c7dc86<scripttype="text/javascript">......