zoukankan      html  css  js  c++  java
  • 从零开始用flask开发个人博客(实战一)

    开始

    已实现基本功能:

    这两年工作一直在用django,这些日子学习了flask,因此想自己写一个教程,从入门到做出一个比较完整的个人博客,以检验自己所学。

    项目所用环境为:python3.7, flask1.1.2,mysql8.0,软件工具为VSCode

    github地址:https://github.com/bingyunsky/flask_blog

    一、创建虚拟环境

    1.使用virtualenv命令创建虚拟环境,文件夹名称为env。 --no-site-packages命令的使用,就不会复制已经存在的第三方安装包。

    进入envScripts,使用activate命令激活虚拟环境(退出环境命令:deactivate)

    二、安装flask

    1、安装:pip install flask

    2、小例子开始

    1) 创建文件夹app和初始文件__init__.py

    2) 项目初始化

    app/__init.py

    1 #-*-coding:utf-8-*-
    2 from flask import Flask
    3 
    4 # 创建app应用,__name__是python预定义变量,被设置为使用本模块
    5 app = Flask(__name__)
    6 
    7 from app import routes
    View Code

    3) 创建路由模块

    app/routes.py  此为主页路由

    #-*-coding:utf-8-*-
    # 从app模块中导入app应用
    from app import app
    
    # 建立路由,通过路由可以执行其覆盖的方法,可以多个路由指向同一个方法。
    @app.route('/')
    @app.route('/index')
    def index():
        return "Hello world!"
    View Code

    4)在app模块之外创建一个主入口来运行整个项目

    myblog.py

    #-*-coding:utf-8-*-
    from app import app
    
    # 防止被引用后执行,只有当前模块中才可以使用;参数debug=True指为调试模式
    if __name__=='__main__':
        app.run(debug = True)
    View Code

    5)运行项目python myblog.py,在浏览器中查看http://127.0.0.1:5000/或者http://127.0.0.1:5000/index

    现在项目结构应该是这样的:

     3、模板

    1) 在app文件夹下新建templates文件夹,在templates文件夹下新建index.html,并传递数据

    index.html

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>{{ title }}博客</title>
    </head>
    <body>
      <h1>Hello,{{ user.username }}!</h1>
    </body>
    </html>
    View Code

    routes.py

    #-*-coding:utf-8-*-
    from flask import render_template
    # 从app模块中导入app应用
    from app import app
    
    # 建立路由,通过路由可以执行其覆盖的方法,可以多个路由指向同一个方法。
    @app.route('/')
    @app.route('/index')
    def index():
        title = "子觉的"
        user = {'username': '子觉'}
        return render_template('index.html', title="子觉的", user=user)
    View Code
  • 相关阅读:
    计算表达式的值并输出,表达式由若干个数字和运算符(只包含加号和减号)构成(C版和python版)
    联机分析场景的关键特征(OLAP)
    C语言字符串去掉指定字符
    主机或者路由器是怎样知道应当在MAC帧的首部填入什么样的硬件地址?(ARP)
    linux虚拟机重置root密码
    python获取时间串的方法
    centos离线安装docker
    前端JavaScript规范
    JQuery中的Deferred-详解和使用
    垂直居中实用三种方式
  • 原文地址:https://www.cnblogs.com/zijue/p/13936214.html
Copyright © 2011-2022 走看看