1 信号
pip3.8 install blinker
-方案一:在每个增加后,都写一行代码 ---》后期要删除,比较麻烦
-方案二:使用信号,写一个函数,绑定内置信号,只要程序执行到这,就会执行这个函数
request_started = _signals.signal('request-started')
request_finished = _signals.signal('request-finished')
before_render_template = _signals.signal('before-render-template')
template_rendered = _signals.signal('template-rendered')
got_request_exception = _signals.signal('got-request-exception')
request_tearing_down = _signals.signal('request-tearing-down')
appcontext_tearing_down = _signals.signal('appcontext-tearing-down')
appcontext_pushed = _signals.signal('appcontext-pushed')
appcontext_popped = _signals.signal('appcontext-popped')
message_flashed = _signals.signal('message-flashed')
1 写一个函数
2 绑定内置信号
3 等待被触发
session_set = _signals.signal('session_set')
def test1(*args, **kwargs):
print(args)
print(kwargs)
print('session设置值了')
https://www.cnblogs.com/liuqingzheng/articles/9803403.html

1.2 django信号
Model signals
pre_init
post_init
pre_save
post_save
pre_delete
post_delete
m2m_changed
class_prepared
Management signals
pre_migrate
post_migrate
Request/response signals
request_started
request_finished
got_request_exception
Database Wrappers
connection_created
1 写一个函数
def callBack(*args, **kwargs):
print(args)
print(kwargs)
2 绑定信号
post_save.connect(callBack)
from django.db.models.signals import pre_save
from django.dispatch import receiver
@receiver(pre_save)
def my_callback(sender, **kwargs):
print("对象创建成功")
print(sender)
print(kwargs)
3 等待触发
2 flask-script
python manage.py runserver
。。。
Flask==2.2.2
Flask_Script==2.0.3
-安装:pip3.8 install flask-script
-修改代码:
from flask_script import Manager
manager=Manager(app)
manager.run()
-用命令启动
python manage.py runserver
@manager.command
def custom(arg):
print(arg)
@manager.option('-n', '--name', dest='name')
@manager.option('-u', '--url', dest='url')
def cmd(name, url):
print(name, url)
3 sqlalchemy 快速使用
pip3.8 install sqlalchemy
SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件
pymysql
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
cx_Oracle
oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
更多:http://docs.sqlalchemy.org/en/latest/dialects/index.html
4 sqlalchemy介绍和快速使用
4.1 原生操作的快速使用
from sqlalchemy import create_engine
engine = create_engine(
"mysql+pymysql://root@127.0.0.1:3306/cnblogs",
max_overflow=0,
pool_size=5,
pool_timeout=30,
pool_recycle=-1
)
conn = engine.raw_connection()
cursor=conn.cursor()
cursor.execute('select * from aritcle')
print(cursor.fetchall())
5 创建操作数据表
from sqlalchemy import create_engine
import datetime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime, UniqueConstraint, Index
Base = declarative_base()
class User(Base):
id = Column(Integer, primary_key=True)
name = Column(String(32), index=True, nullable=False)
email = Column(String(32), unique=True)
ctime = Column(DateTime, default=datetime.datetime.now)
__tablename__ = 'users'
__table_args__ = (
UniqueConstraint('id', 'name', name='uix_id_name'),
Index('ix_id_name', 'name', 'email'),
)
class Book(Base):
__tablename__ = 'books'
id = Column(Integer, primary_key=True)
name = Column(String(32))
engine = create_engine(
"mysql+pymysql://root@127.0.0.1:3306/aaa",
max_overflow=0,
pool_size=5,
pool_timeout=30,
pool_recycle=-1
)
Base.metadata.create_all(engine)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性