博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask 学习app代码备份
阅读量:7142 次
发布时间:2019-06-28

本文共 5827 字,大约阅读时间需要 19 分钟。

#!/usr/bin/python# -*- coding: UTF-8 -*-from flask import Flask, url_forfrom flask import requestfrom flask_script import Managerfrom flask import render_templatefrom threading import Threadimport requestsimport jsonfrom flask_bootstrap import Bootstrapfrom flask_moment import Momentfrom flask_wtf import Formfrom wtforms import StringField, SubmitFieldfrom wtforms.validators import Required, DataRequiredfrom flask import sessionfrom flask import redirectfrom flask import flashfrom datetime import datetimefrom flask_sqlalchemy import SQLAlchemyimport osbasedir = 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'] = Truedb = SQLAlchemy(app)########################################DB config end################################################################app.config['SECRET_KEY'] = 'hard to guess string'@app.route("/", methods=["GET"])def index():    return '

Hello World!

'# 动态路由@app.route("/user/
")def get_username(username): return '

Hello, %s

' % username# 获得请求参数:@app.route("/getrequest")def get_request_arg(): headers = request.headers user_agent = request.headers.get('User-Agent') return '

geted request args is : %s

' % user_agent@app.route("/getpostdata", methods=['GET', 'POST','GET'])def get_post_data(): post_data = request.json # post_data = request.form return "

post data is :%s

" % 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/
")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":"

beijing

","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/
")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 '
' % self.nameclass 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 '
' % 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()

 

转载于:https://www.cnblogs.com/my-blogs-for-everone/p/9025850.html

你可能感兴趣的文章
VMware 虚拟机设置U盘启动(老毛桃 PE)
查看>>
程序员注意了!这样的公司千万不要去!
查看>>
文件服务器--samba和ftp的搭建
查看>>
我的友情链接
查看>>
ubuntu 14.10桌面登陆失败
查看>>
java并发编程,ThreadLocal源码解析
查看>>
textbox只能输入数字
查看>>
Summer School实验二
查看>>
sed命令的使用及案例
查看>>
GoLang环境配置
查看>>
JAVA构建缓存
查看>>
JS中使用正则表达式
查看>>
我的友情链接
查看>>
VM with share disk configuration
查看>>
解决:Loading kernel module CAP_SYS_MODULE CAP_NET_ADMIN alias netdev-eth0 instead
查看>>
千千静听安卓版是百度音乐旗下一款手机音乐软件,集本地歌曲播放
查看>>
OPC UA 统一架构学习3
查看>>
jms简介和原理
查看>>
理解并取证:SSH远程管理协议的工作原理
查看>>
centos apache搭建https
查看>>