python的flask框架的使用的详细步骤

python的flask框架的使用的详细步骤2018 05 16author wills 阅读以下内容默认掌握的知识 1 python 基础 2 会使用 pip 工具 3 能熟练使用 pycharm 工具 4 掌握 virtualenv 工具 能够自己安装 python 的虚拟环境并且使用虚拟环

下面我将介绍一个Python的网页框架工具,flask是一种轻量级的网页框架,和Django这种完善完整高集成框架比起来,它很多东西都没有。比如数据库database,template等等。需要自己安装相关的包,不过优势就是,它只有一个基础的框架,想添加什么东西都是按照自己的意愿,而且flask默认的模板渲染引擎是jinja2,这个可比Django(虽然也可以换成jinja2)自带的好用多了

1 创建一个干净的python虚拟环境

cd flask_for_axf

cd Script

activate

安装所有需要的包

pip install -r install.txt

2 创建相应的文件夹,我的文件系统如下图

这里写图片描述

所有额外的文件以及文件路径都是我自己创建的,接下来还会创建更多文件和路径

3 初始化这个项目

init.py这个python文件的作用就是初始化项目,其代码及含义如下

# __init__.py import os from flask import Flask from axf.views import axf # BASE_DIR建立一个基础路径,用于静态文件static,templates的调用 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) def create_app(): """初始化,创建app """ # 建立静态文件static,tamplates的路径 static_dir = os.path.join(BASE_DIR, 'static') templates_dir = os.path.join(BASE_DIR, 'templates') # 建立app app = Flask(__name__, templates_folder=templates_dir, static_folder=static_dir) # 将路由axf注册到蓝图blueprint,因为我使用了蓝图来管理和规划url,url_prefix参数表示在url前面必须加上axf前面,这是为了与同一个项目中不同的app进行区分,这里‘/axf’一定要加 / 不然会报错 app.resgister_blueprint(blueprint=axf, url_prefix='/axf') return app

4. 在views.py里面写url请求的逻辑处理,代码如下

# views.py # 导入blueprint蓝图模块用来管理和规划url # 导入render_template跳转页面 from flask import Blueprint, render_template axf = Blueprint('axf', __name__) @axf.route('/regist/') def regist(): """注册 """ return render_template('regist.html') @axf.route('/login/') def login(): """ login """ return render_template('login.html')

5 manage.py 文件是原来创建flask项目是自动生成的flask_for_axf.py文件改名的,这样做是为了方便运行这个项目manage.py代码如下

# manage.py from axf import create_app from flask_script import Manage # 创建一个axf项目 axf = create_app() # 将axf 项目至于Manage的管理之下,这样我们可以按照我们想要的方式运行python manage.py runserver -d -p 8888 -h 0.0.0.0 # -d 表示开启debug模式,-p表示选择不同的端口,-h表示主机,0.0.0.0表示该项目允许所有的主机访问 manage = Manage(app=axf) if __name__ == '__main__': manage.run

6. 到了这里后端的部分基本已经出来完毕,剩下的都是一些前端的html页面的处理

为了方便对页面进行处理,我定义了一个base.html作为基础页面,这样所有的页面都可以调用它

# base.html  <html lang="en"> <head> <meta charset="UTF-8"> <title> {% block title %} {% endblock %} 在这里我引入了jquery的在官网上压缩后的文件,这样我所有继承base.html的页面或者所有js,文件都可以直接使用jquery <link rel="stylesheet" href="https://code.jquery.com/jquery-3.1.1.min.js"> {% block extCSS %} {% endblock %}  
    title>  
   head> <body> {% block header %} {% endblock %} {% block content %} {% endblock %} {% block footer %} {% endblock %} {% block extJS %} {% endblock %}  
    body>  
   html>

这里使用到了一种挖坑填坑的思想,即

{% block xxx%} {% endblock%}

只要我在页面中调用了xxx,我就可以在这里写相应的内容,比如我的login.html和regist.html页面

{% extends 'base_main.html' %} {% block title %} 登录 {% endblock %} {% block content %} <form action="" method="post"> 用户名:<input type="text" placeholder="用户名"> <br> 密码:<input type="password" placeholder="密码"> <br> <input type="submit" value="登录">  
    form> {% endblock %}
{% extends 'base_main.html' %} {% block title %} 注册 {% endblock %} {% block content %} <form action="" method="post"> 用户名:<input type="text" placeholder="用户名"> <br> 密码:<input type="password" placeholder="密码"> <br> <input type="submit" value="注册">  
    form> {% endblock %}

可以看到我这两个页面里面的内容都是大同小异,但是他们都继承了{%extends ‘base.html’%} ,这样可以少写很多东西

现在我们已经可以启动这个项目了,但是我们现在就只有两种url请求,一个是login一个regist,这就是一个微型的网页项目,只要在加上数据库的连接办法,就可以实现注册和登录等一系列的网页url请求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175950.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:02
下一篇 2026年3月26日 下午11:02


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号