自学内容网 自学内容网

Python配合Flask搭建简单的个人博客案例demo

开发一个简单的博客网站使用 Python,通常可以选择一些流行的 web 框架,如 FlaskDjango。下面我将以 Flask 为例,带你开发一个简单的博客网站。


环境准备:

Flask 非常适合构建轻量级的博客网站,如果想要更多功能,可以考虑学习 Django,它提供了更丰富的功能和更大的灵活性。

  1. 安装 Python(如果还没有安装的话): Python官网
  2. 安装 Flask:
  3. pip install flask
    

    3.安装数据库支持(这里我们用 SQLite):

  4. pip install flask_sqlalchemy
    

    项目结构

    /my_blog
      /templates
        - index.html
        - post.html
      /static
        - /css
          - style.css
      app.py
    

    步骤 1:创建 app.py 文件

  5. from flask import Flask, render_template, request, redirect, url_for
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///posts.db'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    db = SQLAlchemy(app)
    
    # 数据库模型
    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)
    
        def __repr__(self):
            return f'<Post {self.title}>'
    
    # 首页:显示所有文章
    @app.route('/')
    def index():
        posts = Post.query.all()
        return render_template('index.html', posts=posts)
    
    # 文章页面:显示单篇文章
    @app.route('/post/<int:post_id>')
    def post(post_id):
        post = Post.query.get_or_404(post_id)
        return render_template('post.html', post=post)
    
    # 创建文章
    @app.route('/create', methods=['GET', 'POST'])
    def create():
        if request.method == 'POST':
            title = request.form['title']
            content = request.form['content']
            new_post = Post(title=title, content=content)
            db.session.add(new_post)
            db.session.commit()
            return redirect(url_for('index'))
        return render_template('create.html')
    
    # 启动应用
    if __name__ == "__main__":
        db.create_all()  # 创建数据库
        app.run(debug=True)
    

    步骤 2:创建 HTML 模板

    templates 目录中,创建以下 HTML 文件。

    index.html
  6. <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>我的博客</title>
    </head>
    <body>
        <h1>欢迎来到我的博客</h1>
        <a href="{{ url_for('create') }}">创建新文章</a>
        <ul>
            {% for post in posts %}
                <li>
                    <a href="{{ url_for('post', post_id=post.id) }}">{{ post.title }}</a>
                </li>
            {% endfor %}
        </ul>
    </body>
    </html>
    

    post.html

  7. <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>{{ post.title }}</title>
    </head>
    <body>
        <h1>{{ post.title }}</h1>
        <p>{{ post.content }}</p>
        <a href="{{ url_for('index') }}">返回首页</a>
    </body>
    </html>
    

    create.html

  8. <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>创建文章</title>
    </head>
    <body>
        <h1>创建新文章</h1>
        <form action="{{ url_for('create') }}" method="POST">
            <label for="title">标题:</label>
            <input type="text" name="title" required><br>
            <label for="content">内容:</label><br>
            <textarea name="content" rows="4" required></textarea><br>
            <button type="submit">提交</button>
        </form>
    </body>
    </html>
    

    步骤 3:运行项目

  9. 在项目根目录下,运行 app.py 文件:
  10. python app.py
    

  11. 打开浏览器访问 http://127.0.0.1:5000/,你会看到博客的首页,可以创建新文章并查看。
  12. 可扩展功能

  13. 用户认证:可以添加用户注册、登录功能。
  14. 文章编辑与删除:增加编辑和删除文章的功能。
  15. 分页功能:当文章较多时,可以增加分页显示文章。

原文地址:https://blog.csdn.net/yrldjsbk/article/details/143589155

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!