一、语法和原理
(一)、文件目录结构
需要注意的问题:启动文件命名必须是app.py。
一个典型的Flask应用通常包含以下几个基本文件和文件夹:
app.py:应用的入口文件,包含了应用的初始化和配置。 requirements.txt:应用所依赖的Python包列表。可以使用该文件来管理应用的依赖关系。 README.md:应用的说明文档,包含了应用的运行方法、配置说明等。 venv/:虚拟环境文件夹,用于隔离应用的Python环境。 除了上述基本文件和文件夹外,应用的根目录还可以包含其他一些文件,例如:
static/:静态文件目录,用于存放应用所需的静态资源,如CSS样式表、JavaScript文件、图片等。 templates/:模板文件目录,用于存放应用的HTML模板文件。Flask使用Jinja2作为模板引擎,可以通过模板文件生成动态的HTML页面。
app/
├── __init__.py
├── routes.py
├── models.py
├── forms.py
├── helpers.py
├── static/
│ ├── css/
│ ├── js/
│ └── images/
└── templates/
└── base.html
└── index.html
└── ...
二、案例
(一)、目录结构如下:
(二)、功能与代码
读取文件到app文件夹下并将文件名写入对应的txt文件(现代浏览器不允许获取本地路径),后续通过读入txt的文件名来拼接路径,读取app文件夹下的文件。
步骤:
1、创建主页面
创建一个名为templates的目录,并在其中创建一个名为index.html的文件。将以下HTML代码粘贴到该文件中:
将url_for()函数指向的URL临时替换为了#。在实际项目中,请根据你的路由配置重新添加对应的URL路径。
App Title
2、创建二级页面
在二级页面中实现文件的上传功能。
在templates目录中创建三个子目录:load_model, input, 和 output。 在每个子目录中创建一个名为form.html的文件,并将以下HTML代码粘贴到每个文件中:
3、后端处理
通过Python路由函数实现数据的读取和文件名写入txt
更新的app.py以处理这些表单。将以下python代码添加到app.py文件中:
from flask import Flask, render_template, request
import os
app = Flask(__name__)
model_file = 'model_name.txt'
input_file = 'input.txt'
output_file = 'output.txt'
@app.route('/')
def index():
return render_template('index.html')
@app.route('/load_model', methods=['GET', 'POST'])
def load_model():
if request.method == 'POST':
file = request.files['file']
if file:
filename = file.filename
file.save(os.path.join(app.root_path, filename))
print(f"模型已加载:{filename}")
# 名称写入txt文档
with open(model_file, 'w') as f:
f.write(filename)
return render_template('load_model/form.html')
@app.route('/input', methods=['GET', 'POST'])
def input():
if request.method == 'POST':
file = request.files['file']
if file:
filename = file.filename
file.save(os.path.join(app.root_path, 'input'))
print(f"输入文件已上传:{filename}")
# 名称写入txt文档
with open(model_file, 'w') as f:
f.write(filename)
return render_template('input/form.html')
@app.route('/output', methods=['GET', 'POST'])
def output():
if request.method == 'POST':
file = request.files['file']
if file:
filename = file.filename
file.save(os.path.join(app.root_path, 'output'))
print(f"输出文件已上传:{filename}")
return render_template('output/form.html')
if __name__ == '__main__':
app.run(debug=True)
运行python app.py时,应用程序将在http://localhost:5000上启动。您将看到一个包含三个按钮的页面,每个按钮都链接到一个表单,用于上传本地文件。点击每个按钮将打开一个新的页面,其中包含一个文件上传表单。提交表单后,文件将被保存到相应的目录中。
steamlit 需求
在上面的基础上做如下修改,1、上传按钮只留下一个,并取消上传文件大小限制。2、上传文件到E:\web_steamlit文件夹。3、输出部分为使用pandas 读取E:\web_steamlit文件夹下的 地址表.xlsx并在页面展示前10行,4、输出部分需要给出一个按钮让用户能从E:\web_steamlit下的 地址表.xlsx到用户指定位置
在generate_output()函数中,你尝试下载df变量,但df是一个Pandas DataFrame对象,不能直接下载。你需要将其转换为二进制数据,然后使用st.download_button()函数。你可以使用DataFrame.to_csv()方法将DataFrame转换为CSV文件,然后将其写入内存中。例如,你可以这样修改:
import os import io import pandas as pd import streamlit as st import streamlit.components.v1 as components
st.set_page_config(page_title=“智能平台”, page_icon=None, layout=“centered”, initial_sidebar_state=“auto”, menu_items=None)
设置主题
st.markdown( f"“” “”", unsafe_allow_html=True )
st.markdown(“”"
pass
“”",unsafe_allow_html=True)
输入部分
def get_input(up_folder_path): # 创建一个上传文件组件 file = st.file_uploader(“输入文件”) # 检查是否上传了文件 if file is not None: # 将文件保存到指定目录 file_path = up_folder_path+file.name with open(file_path, ‘wb’) as f: f.write(file.getvalue())
return file
输出部分
def generate_output(file_path): # 读取文件 df = pd.read_excel(file_path) st.dataframe(df.head(10))
# 创建一个下载按钮
csv_buffer = io.StringIO()
df.to_csv(csv_buffer, index=False)
# 将CSV文件内容转换为二进制数据
csv_data = csv_buffer.getvalue().encode("utf-8")
# 下载文件
st.download_button(
"下载文件",
csv_data,
"result.csv",
"text/csv"
)
主体部分
##https://www.zhihu.com/question/483788619/answer/3292315479 搜索 我们的Streamlit交流群中经常听到小伙伴们吐槽Streamlit自带的表格样式太不友好了 def draw_table(df, theme, table_height): columns = df.columns thead1=“”“”“” thead_temp = [] for k in range(len(list(columns))): thead_temp.append(“”“”“”+str(list(columns)[k])+“”“”“”) header = thead1+“”.join(thead_temp)+“”“”“” rows = [] rows_temp = [] for i in range(df.shape[0]): rows.append(“”“”“”+str(i+1)+“”“”“”) rows_temp.append(df.iloc[i].values.tolist()) td_temp = [] for j in range(len(rows_temp)): for m in range(len(rows_temp[j])): td_temp.append(“”“”“”+str(rows_temp[j][m])+“”“”“”) td_temp2 = [] for n in range(len(td_temp)): td_temp2.append(td_temp[n:n+df.shape[1]]) td_temp3 = [] for x in range(len(td_temp2)): if int(x % (df.shape[1])) == 0: td_temp3.append(td_temp2[x]) td_temp4 = [] for xx in range(len(td_temp3)): td_temp4.append(“”.join(td_temp3[xx])) td_temp5 = [] for v in range(len(td_temp4)): td_temp5.append(“”“”“”+str(v+1)+“”“”“”+str(td_temp4[v])+“”“”“”) table_html = “”“”“”+ “”“”“”+ “”“
”“” + header+“”“”“”+“”.join(td_temp5)+“”“”“”
return components.html(table_html,height=table_height, scrolling=True)
输出部分
def table_output(file_path): # 读取文件 df = pd.read_excel(file_path) theme_list=[“bg-primary”, “bg-success”, “bg-warning”, “bg-danger”, “bg-info”, “table-dark”] theme = st.selectbox(“请选择一种主题”, theme_list) draw_table(df, theme=theme, table_height=300) # 显示前10行 st.dataframe(df.head(10))
def main(): #网页模型 st.title(“智能平台”)
# 加载模型
# 获取用户输入
input_data = get_input(up_folder_path)
# 生成输出
generate_output(file_path)
#table_output(file_path)
if name == “main ”: file_path=r"E:\web_steamlit\地址表.xlsx" up_folder_path=r"E:\web_steamlit\" main()
你可能感兴趣的:(flask,前端,python)
前端面经分享(25/03/18)
CreatorRay
react 面试 前端 前端 面试 react
北京一家做边缘云服务提供商公司,技术一面,15k-20k,要求3-5年上家公司的项目为什么会选择MQTT进行通信React常用Hook为什么React不能在条件语句里用Hook前端常见的优化策略React如何捕获子组件的错误React给节点加key会有什么效果最近俩家公司都用WebSocket做了什么HTTP各个版本的区别跨域的常见解决方案前端常见布局WebSocket和SSE的区别A页面滚动到一
「Python数据分析」Pandas基础,筛选数据利器:布尔索引
奕澄羽邦
python 数据分析 pandas
我们在处理数据的时候,数据筛选是一个重要的过程。利用布尔索引,我们可以选择需要的数据区间。布尔索引,是利用各种不等式,以及与或非操作,来对数据区间进行选择。在pandas中,与操作,对应的是&这个符号,表示选取两个数据集重合的部分。或操作,对应的是|这个符号,表示选择两个数据集中,只要在一个数据集中出现的部分。非操作,对应的是~这个符号,表示选取一个数据集中,相反的部分。我们下面通过具体的例子,来
智慧物流数字管理系统设计案例分析
UI设计开发服务商
数据分析 数据挖掘
你好,宝子们!艾斯视觉团队在此,我们专注于UI设计和前端开发领域10年有余。非常高兴能与您分享我们的经验和见解。如果您觉得有所帮助,请给予我们支持和关注,并随时私信我们,共同探讨进步!谢谢您的鼓励!随着科技的飞速发展,数字化已经成为现代物流业的重要发展趋势。智慧物流数字管理系统旨在通过先进的技术手段,实现物流信息的实时共享、智能分析和优化决策,从而提高物流效率、降低成本并提升客户满意度。本文将以一
【数学建模】灰色关联分析模型详解与应用
烟锁池塘柳0
数学建模 数学建模 算法
灰色关联分析模型详解与应用文章目录灰色关联分析模型详解与应用引言灰色系统理论简介灰色关联分析基本原理灰色关联分析计算步骤1.确定分析序列2.数据无量纲化处理3.计算关联系数4.计算关联度灰色关联分析应用实例实例:某企业生产效率影响因素分析灰色关联分析在各领域的应用灰色关联分析的Python实现灰色关联分析的局限性结论引言在数据分析领域,我们经常面临样本量少、信息不完全、数据不确定性高的情况。传统的
数据分析_python进行数据筛选1_行筛选
Monkey*王
python 数据分析 pandas
以titanic的训练数据为例进行展示,为了简化取前十行为例首先导入模块,导入数据importpandasaspdimportnumpyasnpdf=pd.read_csv(r"C:\Users\admin\Desktop\train.csv")df=df.head(10)df.index=['a','b','c','d','e','f','g','h','i','g']筛选单行1.利用df[行索
前端面经真题解析10-字节/抖音电商/前端/超详细记录
浪里个浪zxf
前端面试 前端
文章目录1.自我介绍2.介绍下自己的项目3.看你项目里面用了axios,说下请求拦截和响应拦截怎么做?4.说下项目里面前后端交互过程及设计?5.怎么处理切换分页请求数据的,优化手段?6.说下你爬取别人网站数据的时候,别人如果设置了拦截,你的解决方案是?7.你说下http请求的refer字段?**Origin字段:****Referer字段:****Host字段****区别:**8.看你做了路由懒加
【网易雷火秋招】前端面经分享
编程自学-领绿学长
前端 求职招聘 面试
网易网易雷火是国内一流且最有创新力的游戏研发团队,是网易杭州的第一个游戏工作室。雷火开创性的打造了《逆水寒》、《永劫无间》、《倩女幽魂》、《全明星街球派对》等一众爆款游戏;并在二次元、FPS、主机游戏等方向上持续探索,《代号:无限大》等在研项目收到玩家广泛关注。与此同时,我们与全球合作伙伴一起共同构建开放、协同、共荣共生的产业生态,致力于让中国游戏走出去,让世界听见雷火声音。雷火还拥有国内专业从事
【万字总结】前端全方位性能优化指南(四)——虚拟DOM批处理、文档碎片池、重排规避
庸俗今天不摸鱼
Web性能优化合集 前端 性能优化
前言在浏览器宇宙中,DOM操作如同「时空裂缝」——一次不当的节点更新可能引发连锁重排,吞噬整条渲染流水线的性能。本章直面这一核心矛盾,以原子级操作合并、节点记忆重组、排版禁忌破解为三重武器,重构DOM更新的物理法则。通过虚拟DOM的批处理引擎将千次操作坍缩为单次提交,借助文档碎片池实现90%节点的跨时空复用,再以transform替代top等20项反重排铁律,我们将彻底终结「JavaScript线
前端面经分享(25/03/19)
CreatorRay
前端 面试 前端 面试
北京一家做协同办公软件出海的公司,技术一面,20k-40k,要求3-5年详细聊了一下上家公司的项目上家公司的项目是不做了吗,离职原因是什么,你觉得公司的这个产品怎么样在做AI类的业务时,作为前端感觉跟常规业务有什么区别详细聊了一下上上家公司的项目细节讲一下项目里用编辑器做了什么事遇到过什么难解决的问题项目里提供的UI自动化的功能是怎么做的聊了一下写博客的事情有没有了解过浏览器底层的东西最近在研究或
Python的那些事第四十六篇:基于属性的测试库hypothesis研究
暮雨哀尘
Python的那些事 python 开发语言 属性测试库 hypothesis 执行流程 构建
一、引言(一)研究背景随着软件系统复杂性的不断增加,软件测试在确保软件质量方面的重要性愈发凸显。传统测试方法在面对大规模、复杂软件系统时,往往存在测试用例设计不全面、测试执行效率低下等问题。基于属性的测试作为一种新兴的测试方法,通过定义软件系统的属性来指导测试用例的设计与执行,为解决上述问题提供了新的思路。(二)研究意义本研究旨在深入探讨基于属性的测试库的构建与应用,以提高软件测试的效率和质量,降
3月20日复盘
四万二千
正式复盘 python 前端 机器学习
挑战全栈第八天!今天更新Python中的迭代器和生成器,以及函数式编程的内容。8.3super().init()super().__init__()是Python中用于调用父类(基类)构造函数的一种方式。它通常用于子类的构造函数中,以确保父类的构造函数被正确调用和初始化。这在继承(inheritance)中尤为重要,因为父类的初始化代码可能包含设置实例变量或执行其他重要的初始化任务。classPa
Python + Qt Designer构建多界面GUI应用程序:Python如何调用多个界面文件
懒大王爱吃狼
python python qt 命令模式 mysql 数据库 Python基础 开发语言
引言QtDesigner是一个用户友好的图形用户界面设计工具,它可以帮助开发人员通过拖放的方式快速创建界面。在实际开发中,往往需要设计多个界面文件,并在Python代码中进行统一管理和使用。本文将介绍如何在Python中使用QtDesigner设计好的多个界面文件的常用方法。方法一:单独加载并显示如果界面文件相对独立,并且没有复杂的依赖关系,可以考虑单独加载并显示每个界面文件。fromPyQt5i
【科大讯飞笔试题汇总】2024-04-21-科大讯飞春招笔试题-三语言题解(CPP/Python/Java)
春秋招笔试突围
最新互联网春秋招试题合集 python java 开发语言 春招笔试 互联网大厂笔试题
大家好这里是KK爱Coding,一枚热爱算法的程序员✨本系列打算持续跟新科大讯飞近期的春秋招笔试题汇总~ACM银牌|多次AK大厂笔试|编程一对一辅导感谢大家的订阅➕和喜欢KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下KK领取,会在飞书进行同步的跟新,5月1日之前限时免费领取哦,后续会由ACM银牌团队持续维护~。文章目录01.硬币最少组合问题问题描述输入格式输
Pycharm python解释器 unsupported python 3.1 解决
大表哥在曾母暗沙
Python PyCharm python pycharm ide 解释器模式
Pycharm环境unsupportedpython3.1解决1.问题重现2.原因分析3.解决方法1.问题重现之前使用Pycharm2024.1.1的时候,环境配置的Python3.11.9,现在改成使用Pycharm2020.2.2,结果Python解释器显示“unsupportedpython3.1”,如下图:2.原因分析因为Pycharm2020.2.2支持的Python最高版本就是Pyth
申请 Let's Encrypt 的 免费 TLS 证书实现网站的 https 访问
python
因为这个使用apt安装的python第三方包的版本为什么这么滞后?原因,所以我不是用sudo把证书弄到系统路径,而是选择到普通用户路径下面╭─pon@aliyun2core2GB~/certbot╰─➤tree.├──config│ ├──accounts│ │ └──acme-v02.api.letsencrypt.org│ │ └──directory│ │ └──9401598
python面试题详解
__wishing__
python
十道经典面试题(python)1.一行代码实现累加1-100之和print(sum(range(1,101)))输出结果:5050分析:利用sum函数进行累加。range控制序列。2.一行代码实现列表去重#声明需要去重的列表list1=[1,1,2,2,3,3,4,4]list1=list(set(list1))</
LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人
南七小僧
人工智能 网站开发 AI技术产品经理 服务器 数据库 windows
前言LangChain是一个用于开发由大型语言模型(LargeLanguageModels,简称LLMs)驱动的应用程序的框架。它提供了一个灵活的框架,使得开发者可以构建具有上下文感知能力和推理能力的应用程序,这些应用程序可以利用公司的数据和APIs。这个框架由几个部分组成。LangChain库:Python和JavaScript库。包含了各种组件的接口和集成,一个基本的运行时,用于将这些组件组合
pygmsh 项目常见问题解决方案
葛雨禹
pygmsh项目常见问题解决方案pygmsh:spider_web:GmshforPython项目地址:https://gitcode.com/gh_mirrors/py/pygmsh1.项目基础介绍和主要编程语言项目名称:pygmsh项目简介:pygmsh是一个结合了Gmsh和Python的开源项目。它通过提供Gmsh的Python接口,简化了复杂几何体的创建过程。pygmsh提供了许多有用的抽
浏览器开发者工具深度调试指南:从入门到高阶技巧
109702008
编程 网络 人工智能 网络
浏览器开发者工具(DevTools)是现代前端工程师的"瑞士军刀",本文将系统解析其核心功能与实战技巧,助您掌握高效调试的终极奥义。一、基础操作与核心功能1.1工具启动方式快捷键:F12(Win/Linux)|Cmd+Opt+I(Mac)右键菜单:网页任意位置右键→检查(Inspect)移动端调试:启用设备模式(Ctrl+Shift+M)1.2核心面板全景图面板名称核心功能快捷键切换Element
python之gmsh划分网格
老歌老听老掉牙
python有限元分析 python 开发语言 gmsh 划分网格
Gmsh(GeometryModelingandMeshingSuite)是一个开源的三维有限元网格生成器,它集成了内置的CAD引擎和后处理器。Gmsh的设计目标是提供一个快速、轻量级且用户友好的网格工具,同时具备参数化输入和高级可视化能力。Gmsh围绕几何(geometry)、网格(mesh)、求解器(solver)和后处理(post-processing)四个模块构建,用户可以通过图形用户界面
已解决:python多线程使用TensorRT输出为零?附tensorrt推理代码
李卓璐
算法实战 python 开发语言
我是多个不同类型的模型多线程调用报错。设备:cuda12.1,cudnn8.9.2,tensorrt8.6.11.问题tensorrt的推理没输出???有输入:想要的输出:原因:多进程时,每进程应单独调用importpycuda.driverascuda和cuda.init(),完成初始化CUDA驱动,并需要使用self.cfx.push()和self.cfx.pop()管理CUDA上下文,以保证
Python 的 ultralytics 库详解
白.夜
人工智能
ultralytics是一个专注于计算机视觉任务的Python库,尤其以YOLO(YouOnlyLookOnce)系列模型为核心,提供了简单易用的接口,支持目标检测、实例分割、姿态估计等任务。本文将详细介绍ultralytics库的功能、安装方法、核心模块以及使用示例。1.ultralytics库简介ultralytics库由Ultralytics团队开发,旨在为YOLO系列模型提供高效、灵活且易
《React开发实践:掌握Redux与Hooks应用》——开启你的前端进阶之旅
JJCTO袁龙
前端 react.js 前端框架
文章标题《React开发实践:掌握Redux与Hooks应用》——开启你的前端进阶之旅在前端开发的浪潮中,React.js已经成为开发者们不可或缺的利器。它以其高效、灵活的特性,成为构建现代Web应用的首选框架之一。然而,随着项目复杂度的增加,如何更好地管理状态、优化性能、提升代码可维护性,成为每个开发者必须面对的挑战。幸运的是,我最近出版的《React开发实践:掌握Redux与Hooks应用》这
Webpack常见面试题总结
xiangzhihong8
React Native 前端 webpack 前端 javascript
一、谈谈你对Webpack的理解1.1背景Webpack的目标是实现前端项目的模块化,从而更高效地管理和维护项目中的每一个资源。在早期的前端项目中,我们通过文件划分的形式来实现模块化,也就是将每个功能及其相关状态数据各自单独放到不同的JS文件中。约定每个文件是一个独立的模块,然后再将这些js文件引入到页面,一个script标签对应一个模块,然后再调用模块化的成员。比如:但这种模块化开发的弊端也十分
输入某年某月某日,判断这一天是这一年的第几天python
发现文化fu
python python
题目:输入某年某月某日,判断这一天是这一年的第几天python输入某年某月某日,判断这一天是这一年的第几天python思路:*判断闰年能被4整除但不能被100整除,年份能被400整除#方法1sum=0if(year%4==0andyear%100!=0)oryear%400==0:feb=29else:feb=28month_day=[0,31,feb,31,30,31,30,31,31,30,3
最完整的webpack Dll打包与采坑总结
仰望星空的代码
Vue.js踩坑记 vue.js webpack dll打包 打包优化
webpack已经成为前端主流的项目打包工具,对于前端开发必不可少。在前端项目依赖第三方库过多,项目比较大文件比较多时,webpack打包的速度也会被拖成蜗牛,是时候优化一下webapck的打包速度了。在优化打包速度方面有不少方法方式,其中一个比较重要的方式是DllPlugin。DllPlugin把第三方库打包成动态链接库(动态链接库:windows系统中库文件概念,这里是借用了这一概念。),Dl
python练习3:输入某年某月某日,判断这一天是这一年的第几天?
柯.姐姐
python
#输入某年某月某日,判断这一天是这一年的第几天?list=[0,31,59,90,120,151,181,212,243,273,304,334]year=int(input('请输入年份:'))month=int(input('请输入月份:'))day=int(input('请输入天:'))ifmonth>0andmonth2:result=result+1print("这是第%d天"%resu
初学python100例-案例4 计算一年第几天 多种不同解法 少儿编程案例讲解
小兔子编程
初学python100例 python学习 python100例 python计算天数 python算法 python案例
题目输入某年某月某日,判断这一天是这一年的第几天?解法1程序分析1、以5月2日为例,应该先把前四个月的加起来,2、然后再加上2天即本年的第几天,3、特殊情况,闰年且输入月份大于2时需考虑多加一天:4、闰年1、年份能被4整除;2、年份若是100的整数倍的话需被400整除,否则是平年。程序源代码:year=int(input('year:\n'))month=int(input('month:\n')
Python 的类中,self 是一个特殊的参数
可可乐不加冰
知识学习专栏 python 开发语言
在Python的类中,self是一个特殊的参数,它代表类的实例本身。self是方法的第一个参数,用于访问实例的属性和方法。下面我将从多个角度解释self的含义、作用以及如何使用它。1.self表示类的实例本身在Python中,当你创建一个类的实例时,实际上是在内存中创建了一个对象。self参数代表的就是这个对象本身。通过self,你可以在类的方法中访问和修改实例的属性。2.为什么需要self?se
Trae AI 上新 SSHremote:服务器 Python 接口日志排查实战指南
芯作者
DD:日记 人工智能 深度学习 机器学习
在当今的软件开发中,服务器端的稳定性和可靠性至关重要。然而,生产环境中的问题往往难以预测,尤其是接口返回502错误却无日志记录的情况,更是让开发者头疼不已。幸运的是,字节跳动推出的AI原生IDE——Trae,近期上线的SSHremote功能,为远程服务器日志排查提供了全新的解决方案。本文将结合实战案例,深入探讨如何利用TraeAI的SSHremote功能高效排查Python接口日志问题,并分享创新
解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
java HttpServlet 源理 GenericService 源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
MySQL性能优化
bijian1013
数据库 mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
ThreadPool定时重试
dai_lm
java ThreadPool thread timer timertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
Oracle 查看数据库的连接情况
周凡杨
sql oracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
线程同步和异步
百合不是茶
线程同步 异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
JSP中文乱码分析
bijian1013
java jsp 中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
js实现页面跳转重定向的几种方式
bijian1013
JavaScript 重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
java spring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
[JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
base64编码和url编码
cuityang
base64 url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
solr StatsComponent(聚合统计)
eksliang
solr聚合查询 solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
百度一道面试题
greemranqq
位运算 百度面试 寻找奇数算法 bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点 学习永无止境 众观千象 AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
Spark算子:统计RDD分区中的元素及数量
superlxw1234
spark spark算子 Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f