使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

关于蓝图的使用,可以查看文档:点击进入

一、创建蓝图

1.在 demo 目录下创建一个 modules 目录,做为模块的目录。

2.在 modules 目录下,创建一个 home 目录,做为主页模块。

3.在 home 目录下创建一个 views.py 文件,用来编写路由与请求处理。(相当于 ASP.NET MVC 里的 Routes 和 Controllers)

4.在 home 目录下创建一个 templates 目录,做为 home 模块的模板存放目录,并在这下面创建一个空的 index.html 页面。

views.py

homeRoute = Blueprint(‘home‘, __name__, url_prefix=‘/‘, template_folder=‘templates‘)

@homeRoute.route(‘/‘)
def index():
    return render_template(‘index.html‘)

注意1:

homeRoute = Blueprint(‘home‘, __name__, url_prefix=‘/‘, template_folder=‘templates‘)

这行代码,由 Blueprint 创建的对象,只能在同一个 views.py 中使用一次。也就是说,不可以将该对象做为公共的路由对象来给多个 .py 文件引用使用。

二、注册蓝图

注意2:蓝图只能在 run.py 文件里进行注册,如果在 create_app() 函数或该函数所在的文件进行注册将出现循环引用的异常。

修改后的完整 run.py:

# config=utf-8
from demo import create_app
from demo.modules.home.views import homeRoute

DEFAULT_MODULES = [homeRoute]

app = create_app(‘config.py‘)

for module in DEFAULT_MODULES:
    app.register_blueprint(module)

@app.before_request
def before_request():
    """
    这里是全局的方法,在请求开始之前调用。
    其中 flask 有个全局的变量 g,它是和 session 一样的用途,可以使用它来保存当前用户的数据
    Returns:

    """
    pass

if __name__ == ‘__main__‘:
    app.run()

三、关于模板的搜索规则

1.Flask 会优先搜索应用根目录下的 templates 目录。

2.Flask 接着会搜索 views.py 文件所在的目录下的 templates 目录。

Flask 在 1 处找到了页面时,则不会进入 2,在 1 处找不到页面时,则会进入 2 查找,都不找着则报错。

时间: 2024-08-08 13:57:00

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化的相关文章

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能 为了方便以后的应用切换,所以需要对 run.py 里的代码进行调整下. 1.在/demo 目录下创建 app_start.py /demo/app_start.py # config=utf-8 from demo

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 本次示例的源码下载:点击下载 Flask-Login 库的中文文档:点击进入 Flask-Login 库的新版英文文档:点击进入 一.导入并初始化 Flask-Login 库 在项目根目录下的/demo/__init__.py 文件的头部,import 进 flask_login 库 from flask_login imp

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

Flask 中文文档 Flask_Login 文档 Flask-sqlalchemy 文档 Jinja2 模板文档 为了熟悉 Python 的 Web 开发,找到这个框架.在这里记录下使用它来写一个简单的登录 Demo 功能过程中碰到的问题. 上面几个链接就是使用到相关的库的文档. Flask_Login 这个是官方实现的一套登录验证的库. Flask_sqlalchemy 是官方对 sqlalchemy 库的一个封装,它是一个ORM,用于做数据库访问. 这里使用的开发工具是 PyCharm,使

Flask框架获取用户IP地址的方法

本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法. python代码如下: from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route,

Flask学习之五 用户登录

英文博客地址:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins 中文翻译地址:http://www.pythondoc.com/flask-mega-tutorial/userlogin.html 开源中国社区:http://www.oschina.net/translate/the-flask-mega-tutorial-part-v-user-logins 备注:我是三个一起看的,有些

DRF框架之用户登录状态保持

本篇主要介绍 用户状态保持的两种的方案 -- session 和 jwt_token,以及这两种方案的实现方式,及优缺点对比. 引入:HTTP协议是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码进行用户认证,那么下一次请求时,用户还是要再一次进行用户认证才行. 因为根据HTTP协议的无状态性,在下一次请求时我们并不知道是哪个用户发出的请求,所以为了让我们能识别是哪个用户发送的请求,则必须采取一些特殊的方式,比如 session.jwt_token等. 一.session 根

用flask实现一个用户登录的功能

#!/usr/bin/python #coding=utf-8 from flask import Flask,session,redirect,url_for,request app=Flask(__name__) app.secret_key='\xf1\x92Y\xdf\x8ejY\x04\x96\xb4V\x88\xfb\xfc\xb5\x18F\xa3\xee\xb9\xb9t\x01\xf0\x96' #配置secret_key,否则不能实现session对话 # or # app.

通过flask框架写成http接口调用Ansible

#*******一.flask_ansible.py文件 #!/usr/bin/env python #_*_ coding:utf-8 _*_ import json from flask import Flask,request from ansible_api_job import Ansibles app = Flask(__name__) @app.route('/ansible/command', methods=['GET','POST']) def command():     

restframework框架写api中的个人理解以及碰到的问题

1.明确处理对象,在restframework的处理过程当中,如果是针对model写视图的话,queryset是要待展示的对象集,serializer_class是对每一个对象的所要使用的处理方式. class GuideWordViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): """文章索引""" queryset = GuideWord.objects.all() seriali