#!/usr/bin/python
# -*- coding: UTF-8 -*- from flask import Flask, url_for
from flask import request
from flask_script import Manager
from flask import render_template
from threading import Thread
import requests
import json
from flask_bootstrap import Bootstrap
from flask_moment import Moment
from flask_wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required, DataRequired
from flask import session
from flask import redirect
from flask import flash
from datetime import datetime
from flask_sqlalchemy import SQLAlchemy
import os
basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__)
manager = Manager(app)
Bootstrap(app)
Moment(app)
########################################DB config start################################################################
app.config['SQLALCHEMY_DATABASE_URI'] ='sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
########################################DB config end################################################################
app.config['SECRET_KEY'] = 'hard to guess string' @app.route("/", methods=["GET"])
def index():
return '<h1>Hello World!</h1>' # 动态路由
@app.route("/user/<username>")
def get_username(username):
return '<h1>Hello, %s</h1>' % username # 获得请求参数:
@app.route("/getrequest")
def get_request_arg():
headers = request.headers
user_agent = request.headers.get('User-Agent')
return '<h1>geted request args is : %s </h1>' % user_agent @app.route("/getpostdata", methods=['GET', 'POST','GET'])
def get_post_data():
post_data = request.json
# post_data = request.form
return "<h1>post data is :%s</h1>" % post_data # get index.html
@app.route("/get_index_html")
def get_index():
return render_template("index.html") # get user.html and argument 动态路由并获取参数给模板
@app.route("/get_user_html/<user>")
def get_user(user):
return render_template("user.html", name=user) @app.route("/get_list_html")
def get_list():
item_list = ["python","java","c++","c#","django","flask"]
return render_template("list.html", lists=item_list) @app.route("/get_dict_html")
def get_dict():
dict = {"name":"panxueyan", "age":30,"address":"beijing"}
# f = client_for_flask.post_data
return render_template("dict.html", dicts=dict) def test_mehod():
# r = requests.get("http://127.0.0.1:9000/getrequest")
# print(r.text)
# print("call done")
# return "donee" url = "http://127.0.0.1:9000/getpostdata" data = {"result": "ok"}
data = json.dumps(data)
r = requests.post(url, json=data)
print(r.text)
print("hello call method") # 利用多线程 把函数方法传入模板执行
@app.route("/call_method_html")
def call_method():
t = Thread(target=test_mehod)
method = t.start
return render_template("call_method.html", methods=method) # 过滤器在模板中的使用
@app.route("/filter_useage")
def filter_use():
my_dict = {"name":"panxueya\n","age":30,"address":"<h1>beijing</h1>","daxieshouzimu":"this is xiaoxie","quandaxie":"DONE","qukongge":" hha "}
return render_template("filter.html", dicts=my_dict) # 宏在模板中的使用宏类似于 Python 代码中的函数
@app.route("/hong_useage")
def hong_use():
item_list = ["python", "java", "c++", "c#", "django", "flask"]
return render_template("hong.html", comments=item_list) #把宏保存为html模板,然后在其他模板中导入使用
@app.route("/hone_template_useage")
def hone_template_use():
item_list = ["python", "java", "c++", "c#", "django", "flask"]
return render_template("test_macros_template.html", comments=item_list) #测试模板继承 base是母模板 son是继承base.html
@app.route("/son_use_father_template")
def son_use_father():
return render_template("son.html") @app.route("/test_bootstrap/<name>")
def get_bootstrap(name):
return render_template("test_bootstrap.html", name=name) @app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404 @app.route("/get_some_url")
def get_soome_url():
url = url_for("son_use_father", _external=True)
print(url)
return render_template("get_url_template.html",urls=url) @app.route("/get_datetime")
def get_datetime(): return render_template("test_datetime.html", current_time=datetime.utcnow()) ####################################table model start#################################################
class NameForm(Form):
name = StringField('What is your name?', validators=[DataRequired()])
submit = SubmitField('Submit') class Role(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')
def __repr__(self):
return '<Role %r>' % self.name class User(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 #######################################table model end############################################## @app.route("/test_form",methods=["GET","POST"])
def use_form():
name = None
form = NameForm()
if form.validate_on_submit():
# # name = form.name.data
# session['name'] = form.name.data
# # form.name.data = ''
# return redirect(url_for('use_form')) old_name = session.get('name')
if old_name is not None and old_name != form.name.data:
flash('Looks like you have changed your name!')
session['name'] = form.name.data
return redirect(url_for('use_form'))
return render_template('form.html', form=form, name=session.get('name')) if __name__ == "__main__":
app.debug = True
# app.run(host="0.0.0.0", port=8080)
manager.run()

flask 学习app代码备份的更多相关文章

  1. Flask学习-Flask app启动过程

    因为0.1版本整体代码大概只有350行,比较简单.所以本篇文章会以Flask 0.1版本源码为基础进行剖析Flask应用的启动过程. Flask参考资料flask,官网有一个最简单app: from ...

  2. [ZHUAN]Flask学习记录之Flask-SQLAlchemy

    From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...

  3. 二.Flask 学习模板

    Flask 为你配置 Jinja2 模板引擎.使用 render_template() 方法可以渲染模板,只需提供模板名称和需要作为参数传递给模板的变量就可简单执行. 至于模板渲染? 简单来说,就是将 ...

  4. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  5. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  6. python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)

    昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...

  7. Flask学习-Wsgiref库

    一.前言 前面在Flask学习-Flask基础之WSGI中提到了WerkZeug,我们知道,WerkZeug是一个支持WSGI协议的Server,其实还有很多其他支持WSGI协议的Server.htt ...

  8. Flask 学习篇二:学习Flask过程中的记录

    Flask学习笔记: GitHub上面的Flask实践项目 https://github.com/SilentCC/FlaskWeb 1.Application and Request Context ...

  9. Flask 学习(三)模板

    Flask 学习(三)模板 Flask 为你配置 Jinja2 模板引擎.使用 render_template() 方法可以渲染模板,只需提供模板名称和需要作为参数传递给模板的变量就可简单执行. 至于 ...

随机推荐

  1. 【转】hibernate懒加载的问题,failed to lazily initialize a collection of role

    hibernate懒加载的问题,failed to lazily initialize a collection of role hibernate懒加载的问题,failed to lazily in ...

  2. 驻守深寒:寻找那些有效地关键K线

    K线是组成投机市场的基本符号,也是技术分析的基本工具.可是面对浩如烟海的杂乱K线,特别是市场盘整时,经常使人们的判断发生混乱.支撑之下有支撑,阻力之上有阻力. 前人总结了大量的K线组合和由K线组成的技 ...

  3. ansible 魔法变量

    hostvars 可以让你调用其他host的变量和facts,  即使你没有在这个机器上执行过playbook, 你仍然可以访问变量, 但是不能访问facts. 例如: {{ hostvars['te ...

  4. 从数据的角度带你深入了解IPFS

    IPFS 和区块链有着非常紧密的联系, 随着区块链的不断发展,对数据的存储需求也越来越高.本文从IPFS 的底层设计出发, 结合源代码, 分析了IPFS 的一些技术细节. 一.概述 IPFS 和区块链 ...

  5. codeforces B. Bear and Strings 解题报告

    题目链接:http://codeforces.com/problemset/problem/385/B 题目意思:给定一条只有小写英文组成的序列,需要找出至少包含一个“bear”的单词的子序列个数.注 ...

  6. Spring 事务管理高级应用难点剖析: 第 1 部分

    Spring 的事务管理是被使用得最多的功能之一,虽然 Spring 事务管理已经帮助程序员将要做的事情减到了最小.但在实际开发中,如果使用不当,依然会造成数据连接泄漏等问题.本系列以实际应用中所碰到 ...

  7. 4.js屏蔽浏览器鼠标右键菜单

    document.oncontextmenu = function(){return false;} 参考链接:js 屏蔽浏览器事件汇总

  8. Appleman and a Sheet of Paper

    题意: 给一纸条,两种操作: 1.将左侧长度为$x$的纸条向右翻折. 2.询问位于$[l,r]$的纸条总长度. 解法: 考虑启发式,每一次一个小纸条折叠我们可以看做是一次合并,如果我们每一次将较小的纸 ...

  9. Eclipse用Runnable JAR file方式打jar包,并用该jar包进行二次开发

    目录: 1.eclipse创建Java项目(带jar包的) 2. eclipse用Export的Runnable JAR file方式打jar包(带jar包的) 打jar包 1)class2json1 ...

  10. g2o扩展,然后重新编译生成新库。

    orb作者有g2o扩展,g2o原作者也有g2o扩展,等各项基本功扎实以后,考虑把他们整合在一起,再加上高博扩展的g2o,统一cmake,make,然后能make install 正常使用,就最好了.