KMP模式匹配
KMP算法实现:1.next数组2.模式串匹配实现
ORM思想和框架实现(基于python)
ORM思想和框架实现一》ORM思想ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。在面向对象编程思想下的语言涉及的核心概念就是对象、类和属性。我们回头再看关系数据库,它操作的是对象吗?它能否直接存储对象到数据库或者从数据库直接获取对象?显然不能,如果可以那就不叫关系数据库,而应该叫对象数据库。我们可以说,在关系数据库的世界里,万物皆关系,玩的就是二维表,涉及的核心概念是表、记录和字段。
ORM 作用是为对象与关系数据库之间搭建桥梁,以解决对象与关系数据库之间不协调的问题。
#什么是O,R,M?
O(对象模型):实体对象,即我们在程序中根据数据库表结构建立的一个个实体Entity。
R(关系型数据库的数据结构):即我们建立的数据库表。
M(映射):从R(数据库)到O(对象模型)的映射,可通过XML文件映射。
O and R :两个层面 中间的桥梁 Map映射
[对象关系映射]https://www.361shipin.com/blog ...
gin gorm 学习
gin+gormGIN1.gin 的接口设置:1.指定用户使用GET请求访问/hello1234567891011指定用户使用GET请求访问/hellor.GET("/json", func(c *gin.Context) { data := gin.H{"name": "小王子", "message": "hello world!", "age":"18", } c.JSON(http.StatusOK,data)})
2.结构体 123456789101112131415方法二 结构体 如果需要长期的返回json 事先准备好结构体类型来返回数据type msg struct{ Name string Age int Message string} 通过结构体 来实现返回json在golang中 小写不可导出 只能在内部使用 所以必须首字母大写 或者使用tag `json ...
Celery 分布式任务队列
Celery 分布式任务队列:不管是使用什么编程语言,使用什么框架。在服务器上执行耗时操作,比如网络请求、视频转码、图片处理等。如果想实现快速响应客户端的需求,则必须使用任务队列。任务队列是一个单独的程序,和网站没有直接关系,任务队列提供了接口,能在网站中通过代码操作任务队列,比如:添加任务,查看任务结果等
Celery 是一个简单、灵活、可靠的分布式系统,用于处理大量消息,同时提供维护此类系统所需的工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。
Celery支持手动发布任务,也支持定时任务。不管任务从哪里来,会先把任务存放到Broker(中间人)中,常用作CeleryBroker的有Redis、RabbitMQ、数据库等,其中Redis和RabbitMQ的稳定性和效率是最高的。接着Celery会生成worker,来从Broker中读取任务执行。执行完成后,再把执行后的结果存放到Backend中,常用作CeleryBackend的有Redis和数据库。
Celery官方推荐的Broker和Backend搭配为:RabbitMQ(Baoker)+Redis(Backend) ...
flask入门
一.Flask渲染Jinja2模板和传参1如何渲染模板1.
- 模板放在`templates`文件夹下
- 从`flask`中导入`render_template`函数。
- 在视图函数中,使用`render_template`函数,渲染模板。注意:只需要填写模板的名字,不需要填写`templates`这个文件夹的路径。(仅仅限html直接在template文件夹下)
2.模板传参
如果只有一个或者少量参数,直接在render_template函数中添加关键字参数就可以了。 如:
123@app.route('/')def index(): return render_template('index.html',usename=u'lzh')#传参
如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中,使用两个星号,把字典转换成关键参数传递进去,这样的代码更方便管理和使用。
在模板中,如果要使用一个变量,语法是:{{params}}
访问 ...