当前位置: 首页 > news >正文

低价网站空间移动端的网站模板

低价网站空间,移动端的网站模板,游戏app制作,网站服务器 电信蓝图 使用场景 如果代码非常多#xff0c;要进行归类。不同的功能放在不同的文件#xff0c;把相关的视图函数也放进去。 蓝图也就是对flask的目录结构进行分配#xff08;应用于小#xff0c;中型的程序#xff09; 当然对于大型项目也可以通过 url_prefix 加前缀的…蓝图 使用场景 如果代码非常多要进行归类。不同的功能放在不同的文件把相关的视图函数也放进去。 蓝图也就是对flask的目录结构进行分配应用于小中型的程序 当然对于大型项目也可以通过   url_prefix 加前缀的方式实现 使用方法 # __init__.py from .views.account import ac from .views.user import usapp.register_blueprint(ac) app.register_blueprint(us)# account.py from flask import Blueprint,render_template ac Blueprint(ac ,__name__template_folderxxxx,static_url_pathxxxx)# template_folder 优先在 templates 文件夹找。找不到再去 xxxx 里找 # static_url_path 优先在 static 文件夹找。找不到再去 xxxx 里找 # url_prefix/xx 为当前蓝图的url里加前缀 目录结构 crm crmviewaccount.pyuser.pystatictemplateslogin.html__init__.pymanage.py __init__.py 只要一导入crm就会执行__init__.py文件 在此文件实现app 对象的生成以及所有蓝图的注册功能 from flask import Flask from .views.account import ac from .views.user import us def create_app():app Flack(__name__)app.before_request # 对全局的视图有效 def xx():print(app.before_request)app.register_blueprint(ac)app.register_blueprint(us)return app account.py 各自的视图文件创建蓝图对象 自己视图的使用为自己的蓝图对象 注意 视图函数的名字不能和蓝图对象重名 from flask import Blueprint,render_template ac Blueprint(ac ,__name__template_folderxxxx,static_url_pathxxxx) # template_folder 优先在 templates 文件夹找。找不到再去 xxxx 里找 # static_url_path 优先在 static 文件夹找。找不到再去 xxxx 里找 # url_prefix/xx 为当前蓝图的url里加前缀 ac.route(/login) def login():return render_template(login.html) user.py from flask import Blueprint us Blueprint(us ,__name__)us.before_request # 仅对当前的视图有效 def xx():print(us.before_request)us.route(/user) def user():return user DBUtils 链接数据库 flask中是没有ORM的如果在flask里面连接数据库有两种方式 pymysql SQLAlchemy是python 操作数据库的一个库。能够进行 orm 映射官方文档 sqlchemySQLAlchemy“采用简单的Python语言为高效和高性能的数据库访问设计实现了完整的企业级持久模型”。SQLAlchemy的理念是SQL数据库的量级和性能重要于对象集合而对象集合的抽象又重要于表和行。 pymysql 实现数据库操作 方式一  数据库链接放在视图中 每次视图的执行进行数据库连接查询关闭。 反复创建数据库链接多次链接数据库会非常耗时  解决办法放在全局单例模式 #!usr/bin/env python # -*- coding:utf-8 -*- import pymysql from flask import Flaskapp Flask(__name__)app.route(/index) def index():# 链接数据库conn pymysql.connect(host127.0.0.1,port3306,userroot,password123, databasepooldb,charsetutf8)cursor conn.cursor()cursor.execute(select * from td where id%s, [5, ])result cursor.fetchall() # 获取数据cursor.close()conn.close() # 关闭链接print(result)return 执行成功if __name__ __main__:app.run(debugTrue) 方式二  放在全局 不在频繁链接数据库。 如果是单线程这样没什么问题 但是如果是多线程就得加把锁。这样就成串行的了 为了支持并发此方法依旧不可取 #!usr/bin/env python # -*- coding:utf-8 -*- import pymysql from flask import Flask from threading import RLockapp Flask(__name__) CONN pymysql.connect(host127.0.0.1,port3306,userroot,password123, databasepooldb,charsetutf8)app.route(/index) def index():with RLock:cursor CONN.cursor()cursor.execute(select * from td where id%s, [5, ])result cursor.fetchall() # 获取数据cursor.close()print(result)return 执行成功 if __name__ __main__:app.run(debugTrue) 为此。为了解决方式一二的问题实现不频繁操作且可以并行的数据库链接我们需要用到 DBUtils  方式三 DBUtils  thread.local 为每一个线程创建一个链接是基于本地线程来实现的。thread.local 每个线程独立使用自己的数据库链接该线程关闭不是真正的关闭本线程再次调用时还是使用的最开始创建的链接直到线程终止数据库链接才关闭 #!usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask app Flask(__name__) from DBUtils.PersistentDB import PersistentDB import pymysql POOL PersistentDB(creatorpymysql, # 使用链接数据库的模块maxusageNone, # 一个链接最多被重复使用的次数None表示无限制setsession[], # 开始会话前执行的命令列表。如[set datestyle to ..., set time zone ...]ping0,# ping MySQL服务端检查是否服务可用。# 如0 None never, 1 default whenever it is requested, 2 when a cursor is created, 4 when a query is executed, 7 alwayscloseableFalse,# 如果为False时 conn.close() 实际上被忽略供下次使用再线程关闭时才会自动关闭链接。如果为True时 conn.close()则关闭链接那么再次调用pool.connection时就会报错因为已经真的关闭了连接pool.steady_connection()可以获取一个新的链接threadlocalNone, # 本线程独享值得对象用于保存链接对象如果链接对象被重置host127.0.0.1,port3306,userroot,password123,databasepooldb,charsetutf8 )app.route(/func) def func():conn POOL.connection()cursor conn.cursor()cursor.execute(select * from tb1)result cursor.fetchall()cursor.close()conn.close() # 不是真的关闭而是假的关闭。 conn pymysql.connect() conn.close()conn POOL.connection()cursor conn.cursor()cursor.execute(select * from tb1)result cursor.fetchall()cursor.close()conn.close() if __name__ __main__: app.run(debugTrue) 方式四 DBUtils 链接池 创建一个链接池为所有线程提供连接使用时来进行获取使用完毕后在放回到连接池。 PS 假设最大链接数有10个其实也就是一个列表当你pop一个人家会在append一个链接池的所有的链接都是按照排队的这样的方式来链接的。 链接池里所有的链接都能重复使用共享的 即实现了并发又防止了链接次数太多 #!usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask app Flask(__name__) from DBUtils.PersistentDB import PersistentDB import pymysqlPOOL PooledDB(creatorpymysql, # 使用链接数据库的模块maxconnections6, # 连接池允许的最大连接数0和None表示不限制连接数mincached2, # 初始化时链接池中至少创建的空闲的链接0表示不创建maxcached5, # 链接池中最多闲置的链接0和None不限制maxshared3, # 链接池中最多共享的链接数量0和None表示全部共享。# PS: 无用因为pymysql和MySQLdb等模块的 threadsafety都为1所有值无论设置为多少_maxcached永远为0所以永远是所有链接都共享。blockingTrue, # 连接池中如果没有可用连接后是否阻塞等待。True等待False不等待然后报错maxusageNone, # 一个链接最多被重复使用的次数None表示无限制setsession[], # 开始会话前执行的命令列 AQ 表。如[set datestyle to ..., set time zone ...]threadlocalNone, # 本线程独享值得对象用于保存链接对象如果链接对象被重置ping0,# ping MySQL服务端检查是否服务可用。# 取值# 0 None never, # 1 default whenever it is requested, # 2 when a cursor is created, # 4 when a query is executed, # 7 alwayshost127.0.0.1,port3306,userroot,password,databasecore_master,charsetutf8 ) app.route(/func) def func():conn POOL.connection()cursor conn.cursor()cursor.execute(select * from tb1)result cursor.fetchall()cursor.close()conn.close() # 不是真的关闭而是假的关闭。 conn pymysql.connect() conn.close()conn POOL.connection()cursor conn.cursor()cursor.execute(select * from tb1)result cursor.fetchall()cursor.close()conn.close() if __name__ __main__: app.run(debugTrue) 转载请标明出处:11.4 Flask 蓝图数据库链接 文章来源: 11.4 Flask 蓝图数据库链接
http://www.zqtcl.cn/news/920806/

相关文章:

  • 建设银行网站登陆不上做本地的分类信息网站
  • 公司网站建设哪里实惠网页设计作业百度网盘
  • 如何seo网站挣钱不同企业的网络营销网站
  • 自己做网站有什么用网站怎样设计网址
  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特
  • 长治电子商务网站建设中国建设银行总行官方网站
  • 整站营销系统厚街镇网站仿做
  • 舆情分析网站wordpress文章聚合
  • 中国建设银行网站在哪上市cpa自己做网站
  • 网站建设服务支持jquery插件 wordpress
  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱