【Flask】Flask快速玩框架
快速玩Flask框架,为微博做些准备
from flask importFlask, render_template, session, redirect, url_for, flashfrom flask_bootstrap importBootstrapfrom flask_moment importMomentfrom datetime import datetimefrom flask_wtf importFormfrom wtforms importStringField,SubmitFieldfrom wtforms.validators importRequiredfrom flask_sqlalchemy importSQLAlchemyfrom flask_script importManagerimport osbasedir = os.path.abspath(os.path.dirname(__file__))app =Flask(__name__)#wtf表单验证app.config['SECRET_KEY']='hard to guess string'#数据库URLapp.config['SQLALCHEMY_DATABASE_URI']= \'sqlite:///'+ os.path.join(basedir,'data.sqlite')#每次请求结束后自动提交数据变动app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=Truebootstrap =Bootstrap(app)moment =Moment(app)db =SQLAlchemy(app)manager =Manager(app)#wtf表单类classNameForm(Form):name =StringField('What is your name?', validators=[Required()])submit =SubmitField('Submit')#数据库中的table类classRole(db.Model):__tablename__ ='roles'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(64), unique=True)users = db.relationship('User', backref='role', lazy='dynamic')def __repr__(self):return'<Role %r>'% self.nameclassUser(db.Model):__tablename__ ='users'id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(64), unique=True, index=True)role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))def __repr__(self):return'<User %r>'% self.username#主页@app.route('/', methods=['GET','POST'])def index():form =NameForm()if form.validate_on_submit():user =User.query.filter_by(username=form.name.data).first()if user isNone:user =User(username=form.name.data)db.session.add(user)session['known']=Falseelse:session['known']=Truesession['name']= form.name.dataform.name.data =''return redirect(url_for('index'))return render_template('user.html', form=form, name=session.get('name'), known=session.get('known',False),current_time=datetime.utcnow())#404页@app.errorhandler(404)def page_not_found(e):return render_template('404.html'),404#500页@app.errorhandler(500)def internal_server_error(e):return render_template('500.html'),500#manager.run() 用于是服务器在命令行运行if __name__ =='__main__':app.run(debug=True)# manager.run()
<!-- 基于bootstrap/base.html的基模板 默认有导航栏 page——content可重写-->{% extends "bootstrap/base.html" %}<!-- 导入moment.js -->{% block scripts %}{{ super() }}{{ moment.include_moment() }}{% endblock %}{% block title %}Flasky{% endblock %}{% block head %}{{ super() }}<linkrel="shortcut icon"href="{{ url_for('static', filename = 'favicon.ico') }}"type="image/x-icon"><linkrel="icon"href="{{ url_for('static', filename = 'favicon.ico') }}"type="image/x-icon">{% endblock %}{% block navbar %}<divclass="navbar navbar-inverse"role="navigation"><divclass="container"><divclass="navbar-header"><buttontype="button"class="navbar-toggle"data-toggle="collapse"data-target=".navbar-collapse"><spanclass="sr-only">Toggle navigation</span><spanclass="icon-bar"></span><spanclass="icon-bar"></span><spanclass="icon-bar"></span></button><aclass="navbar-brand"href="/">Flasky</a></div><divclass="navbar-collapse collapse"><ulclass="nav navbar-nav"><li><ahref="/">Home</a></li></ul></div></div></div>{% endblock %}{% block content %}<!-- 弹出警告信息--><divclass="container">{% for message in get_flashed_messages() %}<divclass="alert alert-warning"><buttontype="button"class="close"data-dismiss="alert">×</button>{{ message }}</div>{% endfor %}{% block page_content %}{% endblock %}</div>{% endblock %}
<!DOCTYPE html>{% extends "base.html" %}{% block title %}Flasky - Page Not Found{% endblock %}{% block page_content %}<divclass="page-header"><h1>Not Found</h1></div>{% endblock %}
【Flask】Flask快速玩框架的更多相关文章
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- 初识Flask、快速启动
目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 一.初识Flask 1.1 什么是flask? Flask 本是作者 Armin Rona ...
- python操作三大主流数据库(4)python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示
python操作mysql④python服务端flask和前端bootstrap框架结合实现新闻展示 参考文档http://flask.pocoo.org/docs/0.11/http://flask ...
- 仿flask写的web框架
某大佬仿flask写的web框架 web_frame.py from werkzeug.local import LocalStack, LocalProxy def get_request_cont ...
- Flask 安装 快速入门
$ pip install flask Flask自带的Server在端口5000上监听: ython app.py flask通过request.form['name']来获取表单的内容. 外部可见 ...
- Inside Flask - Flask 简介
Inside Flask - Flask 简介 前言 Flask 的设计目标是实现一个 wsgi 的微框架,其核心代码保持简单和可扩展性,很容易学习.对于有一定经验初学者而言,跟着例子和一些书的代码来 ...
- Inside Flask - flask.__init__.py 和核心组件
Inside Flask - flask.__init__.py 和核心组件 简单的示例 首先看看一个简单的示例.使用 Flask ,通常是从 flask 模块导入 Flask . request 等 ...
- 快速玩转Apple Pay开发
快速玩转Apple Pay开发 更新时间:2016年02月20日09时25分 来源:传智播客 Apple Pay 2016年2月18日上午,苹果公司宣布,与中国银联达成合作,正式在中国大陆上线Appl ...
- day92:flask:flask简介&基本运行&路由&HTTP请求和响应
目录 1.Flask简介 2.关于使用flask之前的准备 3.flask的基本运行 4.flask加载配置 5.传递路由参数(没有限定类型) 6.传递路由参数(通过路由转换器限定路由参数的类型) 7 ...
随机推荐
- SQL&&LINQ:左(外)连接,右(外)连接,内连接,完全连接,交叉连接,多对多连接
SQL: 外连接和内连接: 左连接或左外连接:包含左边的表的所有行,如果右边表中的某行没有匹配,该行内容为空(NULL) --outer jion:left join or left outer jo ...
- console打印数组object具体内容
例如 var data=[ {}, {}, {} ] 需要打印出以上data中每个{}内容,可以使用如下方式: for(var i=0;i<data.length;i++) { var a = ...
- Intellij 图标介绍及配置文件常识
图标 参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xm ...
- Vim入门教程
尽管网上有成打的Vim在线教程,但是要么艰深晦涩,要么太过肤浅.本教程的目标让每个阶段都有斩获,从理解它的哲学(将和你终身相伴)到超越现在编辑技巧,成为其中的牛人. 简单来说,本教程的学习方式将使你终 ...
- php 判断是手机版还是电脑端
function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { ...
- MultiDex到底有多坑
google为什么要引入MultiDex? dex指令是用16位寄存器来保存dex中的方法数,所以限制了在apk 中最大的方法数为65535,当超过这个最大值在编译的时候会报 方法数超标的错误. 如何 ...
- CSS3中的Transition属性详解
w3c标准中对CSS3的transition这是样描述的:“CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...
- MySQL学习笔记--基本操作
1.登录数据库 在命令行输入 "mysql -u username -p" 回车后输入密码 2.选择数据库 USE datebase name,选择要操作的数据库 3.显示所有数据 ...
- SourceForge无法访问的解决办法
这一阵java框架spring和hibernate都有新版本了(spring2.5.5和hibernate3.2.6)想下载看看,却发现 SourceForge.net无法打开.刚才用Google搜索 ...
- 编程之美--2. Trie树 (Trie图)
#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助, ...