内容简介:文件目录结构如下.├── app
单蓝图多视图文件模板
文件目录结构如下
.
├── app
│ ├── __init__.py # 初始化flask核心对象
│ └── web
│ ├── account.py # 和账号相关视图函数定义文件
│ ├── blueprint.py # 蓝图定义文件
│ ├── __init__.py # 将视图函数文件导入,保证视图函数可以注册到蓝图
│ └── user.py # 和用户相关视图函数定义文件
├── config.py # 项目配置文件
├── readme.txt
└── run.py # 项目启动文件
在项目根目录下创建run.py、config.py以及app目录,并且在app目录下创建__init__.py以及web、templates、static三个目录。
run.py内容如下
# -*- coding:utf-8 -*- # 项目入口文件,负责完成web服务器的启动、配置文件的加载和读取、初始化flask核心对象(或将初始化任务放入app/__init__.py) # 不将业务相关的代码放在这里 # 从app这个包引入自定义的创建app对象的函数 from app import create_app app = create_app() if __name__ == '__main__': app.run(host='0.0.0.0', port=80, debug=app.config['DEBUG'])
config.py内容如下
# -*- coding:utf-8 -*- # 定义项目配置文件 DEBUG = True
app/__init__.py内容如下
# -*- coding:utf-8 -*- # 初始化flask核心对象 from flask import Flask # 定义一个函数用来创建app核心对象 def create_app(): app = Flask(__name__) app.config.from_object('config') # 调用注册蓝图 register_blueprint(app) return app # 创建注册蓝图的方法 def register_blueprint(app): # 导入蓝图对象 from app.web.blueprint import web app.register_blueprint(web)
在app/web目录下创建__init__.py、blueprint.py、user.py、account.py三个文件
__init__.py内容如下
# -*- coding:utf-8 -*- # 将视图函数的文件中的视图函数导入 # 因为在web/blueprint.py中只是定义蓝图, 但并没有将web目录下的视图函数文件中定义的视图函数导入 # 视图函数没有导入web/blueprint.py那么,函数注册到蓝图也会失败 # 由于book.py和user.py下的视图函数是没有被导入的因此需要在这里导入,否则还是会提示404视图文件没注册的问题 from app.web import server from app.web import user from app.web import account
blueprint.py内容如下
# -*- coding:utf-8 -*- # 定义蓝图 from flask import Blueprint # 这里定义一个叫web的通用名称的蓝图,在web/__init__.py中将 web目录下的多个视图函数的文件再注册到web这个蓝图下 web = Blueprint('web', __name__) # 将web目录下视图函数文件中的视图函数导入的工作交给web/__init__.py
user.py内容如下
# -*- coding:utf-8 -*- # 视图函数定义文件,定义和用户相关的视图函数 from .blueprint import web from flask import session, redirect # @web.route('/user/') # def user(): # pass # 让url前缀为 user的请求都要求登录 # @web.before_request # def press_request(*args, **kwargs): # user = session.get('user_info') # if user: # return None # return redirect('/login/') @web.route('/user/', methods=['GET', 'POST']) def user(): return 'user'
account.py内容如下
# -*- coding:utf-8 -*- # 视图函数定义文件,和账号相关的视图函数 from .blueprint import web from flask import request, render_template, redirect, session @web.route('/register/') def register(): pass @web.route('/login/', methods=['GET', 'POST']) def login(): if request.method == "GET": return render_template('login.html') else: user = request.form.get("user") pwd = request.form.get("pwd") if user == 'zdz' and pwd == '123': session['user_info'] = user # return redirect('http://www.zhengdazhi.com') return redirect('/user/') return render_template('login.html', error='用户名或密码错误') # 为account这个蓝图下的url前缀的请求做扩展 @web.before_request def press_request(*args, **kwargs): print("来了")
在app/templates目录下创建login.html,内容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>用户登录</h1> <form method="post"> <input type="text" name="user"> <input type="text" name="pwd"> <input type="submit" value="登录">{{error}} </form> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 网站模板 | 现代时尚创新创意投资组合HTML5模板设计
- ReportLibrary 报表模板库新增 21 张报表模板,加入报表导出功能!
- ReportLibrary 报表模板库新增 21 张报表模板,加入报表导出功能!
- 工具集核心教程 | 第五篇: 利用Velocity模板引擎生成模板代码
- Word 模板引擎 poi-tl V1.3.0 发布,新增模板语法
- React与Vue模板使用比较(一、vue模板与React JSX比较)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ActionScript 3.0精彩范例词典
杨东昱 编 / 2008-5 / 59.00元
《ActionScript 3.0精彩范例词典》列出了最常用的ActionScript语法,并附有详细的程序代码范例,不但教您如何使用、修改ActionScript代码,而且还以实际范例和图解,说明每项语法还能呈现哪些动画效果和功能,对学习ActipScript有所帮助。读者在阅读《ActionScript 3.0精彩范例词典》之后,将能开发出属于自己的ActionScript程序与FLASH动画......一起来看看 《ActionScript 3.0精彩范例词典》 这本书的介绍吧!