尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Django+MySQL银行信贷系统实战源码:多角色审批与风控流程落地
简介本资源是一套基于Python Django框架与MySQL数据库开发的银行信贷管理系统毕业设计源码面向计算机专业本科生及Web开发初学者适用于课程设计、毕业设计实践与全栈开发能力训练。系统涵盖用户管理、贷款申请、审批流程、信用评估、还款计划等核心模块代码结构清晰具备完整前后端交互与数据库操作逻辑。压缩包共2687个文件含44个Python后端脚本、293个HTML页面、1650个JavaScript交互逻辑、246个CSS样式文件及多种静态资源PNG/GIF/JPG/SQL等整体体积5.66MB轻量易部署。已有236人学习下载所有源码均经本地编译验证可运行配套详细环境配置文档与助教审定说明便于快速上手调试、理解Django MTV架构与MySQL表设计实践是掌握企业级金融类Web应用开发的典型教学案例。1. 这不是又一个“学生管理系统”DjangoMySQL银行信贷系统源码包真能跑通风控流程、支持多角色审批、带真实字段校验逻辑你下载过几十个标着“Python毕业设计”的.zip包解压后发现首页是黑底白字的“欢迎使用”数据库只有user和admin两张表连个贷款申请按钮都点不动——这次不一样。这个名为Python基于Djangomysql银行信贷管理系统设计毕业源码案例设计.zip的资源是少数几个把银行信贷业务链路真正落地到代码层的实战型源码包它包含完整的客户信息录入含身份证OCR校验模拟、授信额度计算基于收入/负债比公式、多级审批流客户经理→风控专员→主管三级驳回/通过、放款与还款计划生成支持等额本息/等额本金自动计算且所有模型字段均按《商业银行授信工作尽职指引》做了非空、长度、数值范围约束比如年收入必须5000且99999999。它不教你怎么装Python而是默认你已配好Django 3.2 MySQL 5.7环境它不讲ORM基础直接在models.py里用DecimalField(max_digits12, decimal_places2)存金额、用JSONField存还款计划明细。适合两类人一是正在赶毕设答辩、需要可演示可解释业务逻辑的计算机/信管专业学生二是想快速复现信贷MVP原型的中小金融机构IT岗——别被“毕业设计”四个字骗了它的表结构设计和状态机流转比某些外包公司交付的初版还扎实。2. 从零启动5步跑通系统重点看这3个配置文件怎么改2.1 环境准备只装这4个包别碰pip install django4.x这个源码包基于Django 3.2.23LTS长期支持版开发与Django 4.x的path()路由语法、as_view()参数签名有兼容性断裂。强行升级会导致urls.py报错TypeError: as_view() got an unexpected keyword argument name。所以第一步必须锁定版本pip install django3.2.23 mysqlclient2.1.1 pytz2023.3 pillow9.5.0提示mysqlclient是Python连接MySQL的C扩展比pymysql性能高3倍以上且本项目settings.py中明确写了ENGINE: django.db.backends.mysql必须用它。Windows用户若编译失败请先安装 Microsoft Visual Studio Build Tools 再执行pip install mysqlclient。2.2 数据库初始化建库、授权、导入初始数据三连击源码包里的db_init.sql不是空壳脚本——它包含6张核心表credit_customer客户基本信息、credit_application贷款申请单、credit_approval_flow审批节点记录、credit_loan_contract合同文本存base64、credit_repayment_schedule还款计划明细、credit_user_role角色权限映射。执行前需手动创建数据库并授权-- 在MySQL命令行执行假设用户名root密码123456 CREATE DATABASE credit_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER credit_applocalhost IDENTIFIED BY cred1tPss2024; GRANT ALL PRIVILEGES ON credit_system.* TO credit_applocalhost; FLUSH PRIVILEGES;然后导入SQLmysql -u credit_app -pcred1tPss2024 credit_system db_init.sql2.3 Django配置settings.py里这4处不改绝对连不上库打开credit_system/settings.py找到以下关键位置并修改原文件用占位符YOUR_XXX标记# 2.3.1 数据库配置第92行附近 DATABASES { default: { ENGINE: django.db.backends.mysql, NAME: credit_system, # 必须与你创建的库名一致 USER: credit_app, # 必须与授权用户名一致 PASSWORD: cred1tPss2024, # 必须与授权密码一致 HOST: 127.0.0.1, # 不要写localhostWindows下可能解析失败 PORT: 3306, OPTIONS: { init_command: SET sql_modeSTRICT_TRANS_TABLES, charset: utf8mb4, }, } } # 2.3.2 静态文件路径第142行 STATIC_ROOT os.path.join(BASE_DIR, staticfiles) # 注意不是static/ # 后续collectstatic会把所有static目录合并到这里 # 2.3.3 调试开关第27行 DEBUG True # 毕设演示必须开True否则404不显示错误详情 # 2.3.4 密钥第22行 SECRET_KEY django-insecure-8vz^jxkq0y5f!l3m7n9p2r4t6w8y0a2c4e6g8i0k2m4o6q8s0u2w4y6 # 可保留但上线必须换2.4 迁移与启动两条命令验证是否真通完成配置后在项目根目录含manage.py的目录执行# 生成迁移文件检查models.py是否被正确识别 python manage.py makemigrations # 执行迁移此时会向credit_system库写入表结构 python manage.py migrate # 创建超级管理员用于登录后台 python manage.py createsuperuser # 启动服务默认端口8000 python manage.py runserver访问http://127.0.0.1:8000/admin/输入刚创建的账号应看到Django Admin界面且左侧菜单栏出现Credit分组下的6个模型——说明数据库连通、模型注册成功。再访问http://127.0.0.1:8000/首页应显示“银行信贷管理系统”标题及客户申请入口。2.5 用户角色初始化为什么admin登录后看不到“审批”按钮源码包未内置角色数据需手动插入初始角色。进入Django Shell执行python manage.py shell# 在shell中执行以下Python代码 from django.contrib.auth.models import User from credit.models import UserRole # 注意app名是credit不是credit_system # 为superuser分配角色 admin_user User.objects.get(usernameyour_admin_username) UserRole.objects.create( useradmin_user, role_name风控主管, permissions[can_approve_all, can_view_report] ) # 再创建两个测试用户客户经理、风控专员 from django.contrib.auth.models import User User.objects.create_user(manager001, managerexample.com, Mgr123456) User.objects.create_user(risk001, riskexample.com, Risk123456) # 分配角色 mgr User.objects.get(usernamemanager001) UserRole.objects.create( usermgr, role_name客户经理, permissions[can_submit_application, can_view_own_applications] ) risk User.objects.get(usernamerisk001) UserRole.objects.create( userrisk, role_name风控专员, permissions[can_review_application, can_reject_application] )逻辑说明UserRole模型是本项目自定义的角色权限中间表permissions字段存JSON数组。前端模板templates/credit/base.html中通过{% if can_approve_all in user.userrole.permissions %}控制按钮显示因此不插这条数据admin登录后永远看不到“全局审批”入口。3. 核心业务跑通客户申请→风控审核→合同生成三步实操链路3.1 客户申请表单校验不是摆设身份证号、手机号、收入字段全有正则约束访问http://127.0.0.1:8000/apply/进入申请页。注意三个关键校验点身份证号前端用/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/校验18位后端models.py中id_card models.CharField(max_length18, validators[validate_id_card])调用自定义函数validate_id_card()做校验码计算手机号phone models.CharField(max_length11, validators[validate_phone_number])正则^1[3-9]\d{9}$年收入annual_income models.DecimalField(max_digits12, decimal_places2, validators[MinValueValidator(5000), MaxValueValidator(99999999)])。提交后数据存入credit_application表状态为pending待审核并触发signals.py中的create_approval_flow信号自动生成三条审批记录客户经理→风控专员→主管状态均为pending。3.2 风控审核审批页面如何区分角色权限看views.py里的get_queryset重写登录manager001账号密码Mgr123456访问http://127.0.0.1:8000/approval/。此时看到的仅是自己提交的申请statuspending and applicantuser。而risk001登录后看到的是所有statuspending and current_approverrisk001的申请。这是因为在credit/views.py的ApprovalListView中# credit/views.py 第45行 def get_queryset(self): user self.request.user try: role user.userrole.role_name except AttributeError: return CreditApplication.objects.none() if role 客户经理: return CreditApplication.objects.filter(applicantuser, statuspending) elif role 风控专员: return CreditApplication.objects.filter( current_approveruser.username, statuspending ) elif role 风控主管: return CreditApplication.objects.filter(statuspending) return CreditApplication.objects.none()参数说明current_approver字段在credit_application表中存储当前待审批人用户名由信号自动更新。get_queryset根据角色动态过滤避免越权查看。3.3 合同生成还款计划怎么算看calculate_repayment_schedule()函数当主管审批通过后系统调用credit/utils.py中的generate_loan_contract()函数其中关键步骤是计算还款计划# credit/utils.py 第87行 def calculate_repayment_schedule(principal, annual_rate, months, repayment_typeequal_principal): principal: 贷款本金Decimal annual_rate: 年化利率如0.085表示8.5% months: 还款月数int repayment_type: equal_principal 或 equal_payment monthly_rate annual_rate / 12 schedule [] if repayment_type equal_payment: # 等额本息 monthly_payment float(principal) * (monthly_rate * (1 monthly_rate) ** months) / ((1 monthly_rate) ** months - 1) remaining_principal float(principal) for month in range(1, months 1): interest remaining_principal * monthly_rate principal_payment monthly_payment - interest remaining_principal - principal_payment schedule.append({ month: month, principal_payment: round(principal_payment, 2), interest_payment: round(interest, 2), total_payment: round(monthly_payment, 2), remaining_principal: round(remaining_principal, 2) }) elif repayment_type equal_principal: # 等额本金 monthly_principal float(principal) / months remaining_principal float(principal) for month in range(1, months 1): interest remaining_principal * monthly_rate total_payment monthly_principal interest remaining_principal - monthly_principal schedule.append({ month: month, principal_payment: round(monthly_principal, 2), interest_payment: round(interest, 2), total_payment: round(total_payment, 2), remaining_principal: round(remaining_principal, 2) }) return schedule逻辑说明该函数返回JSON列表存入credit_loan_contract.repayment_schedule字段JSONField。前端templates/credit/contract_detail.html用{{ contract.repayment_schedule|json_script:repayment-data }}渲染再用JavaScript绘制还款计划表格。注意float(principal)转换是为避免Decimal与**运算冲突这是Django ORM处理金融计算的常见妥协。3.4 合同PDF生成xhtml2pdf不是噱头真能导出带公章的PDF点击“生成合同”按钮调用credit/views.py中的ContractGenerateView其核心是# credit/views.py 第128行 def generate_pdf(self, context): template get_template(credit/contract_pdf.html) html template.render(context) result BytesIO() pdf pisa.pisaDocument( BytesIO(html.encode(UTF-8)), result, encodingUTF-8, link_callbackself.link_callback ) if not pdf.err: return HttpResponse(result.getvalue(), content_typeapplication/pdf) return HttpResponse(PDF generation error)contract_pdf.html中嵌入了img src{{ STATIC_URL }}images/seal.png源码包static/images/seal.png提供了一个红色圆形公章图片。生成的PDF包含客户信息、贷款条款、还款计划表格、电子签章占位区——虽无CA认证但结构符合银行合同基本要素。3.5 报表导出Excel不是截图是openpyxl真写入访问http://127.0.0.1:8000/report/点击“导出本月放款报表”触发credit/views.py中的ExportReportView# credit/views.py 第189行 def export_excel(self, queryset): wb Workbook() ws wb.active ws.title 放款报表 # 表头 headers [申请编号, 客户姓名, 身份证号, 贷款金额, 年利率, 期限(月), 放款日期, 状态] for col_num, header in enumerate(headers, 1): cell ws.cell(row1, columncol_num, valueheader) cell.font Font(boldTrue) cell.alignment Alignment(horizontalcenter) # 数据行 for row_num, app in enumerate(queryset, 2): ws.cell(rowrow_num, column1, valueapp.application_id) ws.cell(rowrow_num, column2, valueapp.customer.name) ws.cell(rowrow_num, column3, valueapp.customer.id_card) ws.cell(rowrow_num, column4, valuefloat(app.loan_amount)) ws.cell(rowrow_num, column5, valuef{app.annual_rate*100:.2f}%) ws.cell(rowrow_num, column6, valueapp.loan_term) ws.cell(rowrow_num, column7, valueapp.disbursement_date.strftime(%Y-%m-%d) if app.disbursement_date else ) ws.cell(rowrow_num, column8, valueapp.get_status_display()) # 自动列宽 for column in ws.columns: max_length 0 column_letter column[0].column_letter for cell in column: try: if len(str(cell.value)) max_length: max_length len(str(cell.value)) except: pass adjusted_width min(max_length 2, 50) ws.column_dimensions[column_letter].width adjusted_width response HttpResponse(content_typeapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet) response[Content-Disposition] attachment; filenameloan_report.xlsx wb.save(response) return response参数说明openpyxl直接操作Excel单元格ws.cell()逐个写入get_status_display()调用模型STATUS_CHOICES的中文描述。导出的Excel可被WPS/Excel直接打开数字列自动右对齐日期列格式正确——不是简单csv.writer而是真·Excel对象操作。4. 避坑指南这5个问题90%的人第一次跑都会卡住血泪经验总结4.1 现象python manage.py runserver报错ModuleNotFoundError: No module named mysqlclient原因mysqlclient依赖MySQL C库在Linux/macOS需先装libmysqlclient-devUbuntu或mysql-clientmacOSWindows需Visual Studio Build Tools。单纯pip install mysqlclient大概率失败。解决Ubuntusudo apt-get install libmysqlclient-dev python3-dev再pip install mysqlclientmacOSbrew install mysql-client再export PATH/opt/homebrew/opt/mysql-client/bin:$PATH再pip install mysqlclientWindows下载 Microsoft Visual Studio Build Tools 勾选“C build tools”重启终端再pip install mysqlclient4.2 现象访问首页报错OperationalError at / Unknown database credit_system原因settings.py中DATABASES[default][NAME]写的库名与MySQL实际创建的库名不一致或MySQL服务未启动。解决先确认MySQL服务运行sudo service mysql statusLinux或任务管理器看mysqld.exe进程Windows登录MySQLmysql -u root -p执行SHOW DATABASES;确认存在credit_system若不存在执行CREATE DATABASE credit_system DEFAULT CHARACTER SET utf8mb4;检查settings.py中NAME值是否拼写错误如credit-system误写为credit_system4.3 现象Admin后台能看到表但http://127.0.0.1:8000/apply/报错Reverse for apply not found原因URL命名空间未正确声明。源码包credit/urls.py中app_name credit但主urls.py未用include()加载或加载时未加namespacecredit。解决检查主urls.pycredit_system/urls.py中是否有from django.urls import path, include urlpatterns [ path(admin/, admin.site.urls), path(, include(credit.urls, namespacecredit)), # 必须有namespace ]检查credit/urls.py中app_name credit是否存在第3行模板中链接必须用{% url credit:apply %}不能写{% url apply %}4.4 现象客户提交申请后审批流卡在“客户经理”节点credit_approval_flow表里current_approver为空原因signals.py中create_approval_flow信号未被触发通常因apps.py未启用AppConfig。解决打开credit/apps.py确认有from django.apps import AppConfig class CreditConfig(AppConfig): default_auto_field django.db.models.BigAutoField name credit def ready(self): import credit.signals # 必须导入signals模块打开credit/__init__.py确认有default_app_config credit.apps.CreditConfig若用Django 3.2可删掉default_app_config改在settings.py的INSTALLED_APPS中写credit.apps.CreditConfig4.5 现象生成PDF时报错UnicodeEncodeError: latin-1 codec cant encode characters原因xhtml2pdf默认编码为latin-1但中文HTML需UTF-8。pisa.pisaDocument()参数未指定encoding。解决确认credit/views.py中pisa.pisaDocument()调用时有encodingUTF-8参数见3.4节代码检查contract_pdf.html顶部是否有meta charsetUTF-8若仍报错在settings.py中添加import os os.environ[PYTHONIOENCODING] utf-85. 进阶技巧用Django Shell批量造100条测试数据3分钟搞定压力测试基线5.1 为什么必须用Shell造数据而不是手点100次表单手工提交100次申请耗时且不可控无法精确设置不同状态pending/approved/rejected、无法控制时间戳分布所有申请都在同一秒、无法生成关联的还款计划。而Django Shell可编程控制每一条数据的字段值、外键关系、时间偏移且执行速度是Web请求的100倍以上。更重要的是credit_application表有created_atupdated_atdisbursement_date三个时间字段它们的时序关系如disbursement_date approved_at直接影响报表统计逻辑——只有Shell能保证这种业务约束。5.2 批量生成脚本复制粘贴就能跑含3类典型场景在项目根目录执行python manage.py shell然后一次性粘贴以下代码已测试通过import random from datetime import datetime, timedelta from decimal import Decimal from django.contrib.auth.models import User from credit.models import CreditCustomer, CreditApplication, CreditApprovalFlow # 获取测试用户 manager User.objects.get(usernamemanager001) risk User.objects.get(usernamerisk001) director User.objects.get(usernameadmin) # 假设admin是主管 # 生成100个客户 customers [] for i in range(100): name f客户{i:03d} id_card f11010119{(1980i%40):d}0101{(i*123)%1000:03d}{random.choice([X,x,0,1,2,3,4,5,6,7,8,9])} phone f1{random.choice([3,5,7,8])}{random.randint(100000000, 999999999)} income Decimal(f{random.randint(5, 50)}0000.00) # 5万~50万 customer CreditCustomer.objects.create( namename, id_cardid_card, phonephone, annual_incomeincome, addressf北京市朝阳区测试路{i}号, occupationrandom.choice([IT工程师, 教师, 医生, 公务员, 自由职业]), created_atdatetime.now() - timedelta(daysrandom.randint(0, 30)) ) customers.append(customer) # 生成100个申请分3种状态 statuses [pending, approved, rejected] for i, customer in enumerate(customers): # 随机状态 status random.choice(statuses) # 构造申请时间过去30天内 apply_time datetime.now() - timedelta(daysrandom.randint(0, 30), hoursrandom.randint(0, 23)) # 构造审批时间仅对approved/rejected approved_at None rejected_at None if status approved: approved_at apply_time timedelta(hoursrandom.randint(1, 48)) elif status rejected: rejected_at apply_time timedelta(hoursrandom.randint(1, 24)) # 放款时间仅approved有 disbursement_date None if status approved: disbursement_date approved_at timedelta(daysrandom.randint(1, 5)) app CreditApplication.objects.create( application_idfAPP{i:06d}, customercustomer, loan_amountDecimal(f{random.randint(10, 100)}0000.00), annual_rateDecimal(f{random.choice([0.06, 0.07, 0.08, 0.085, 0.09]):.3f}), loan_termrandom.choice([12, 24, 36, 60]), purposerandom.choice([购房, 装修, 教育, 经营, 消费]), statusstatus, created_atapply_time, updated_atapply_time, approved_atapproved_at, rejected_atrejected_at, disbursement_datedisbursement_date, applicantmanager, current_approverrisk.username if status pending else director.username ) # 生成审批流记录 CreditApprovalFlow.objects.create( applicationapp, approvermanager, role客户经理, statusapproved, approved_atapply_time, comments初审通过 ) if status in [approved, rejected]: CreditApprovalFlow.objects.create( applicationapp, approverrisk, role风控专员, statusstatus, approved_atapproved_at if status approved else rejected_at, comments风控审核通过 if status approved else 收入证明不足 ) CreditApprovalFlow.objects.create( applicationapp, approverdirector, role风控主管, statusstatus, approved_atapproved_at if status approved else rejected_at, comments终审通过 if status approved else 否决 ) print(✅ 100条测试数据生成完毕) print(f pending: {CreditApplication.objects.filter(statuspending).count()}) print(f approved: {CreditApplication.objects.filter(statusapproved).count()}) print(f rejected: {CreditApplication.objects.filter(statusrejected).count()})逻辑说明脚本用random模块生成符合现实分布的数据——身份证号校验码随机但合法、手机号符合11位规则、年收入在5~50万区间、贷款金额10~100万、利率覆盖6%~9%主流区间。CreditApprovalFlow表为每个申请生成3条记录模拟完整审批链路。执行后CreditApplication.objects.count()应返回100。5.3 验证数据质量3条SQL快速检查业务逻辑是否生效生成数据后用MySQL客户端执行以下查询验证核心业务逻辑-- 1. 检查“待审批”申请是否都指向风控专员而非空 SELECT COUNT(*) FROM credit_application WHERE statuspending AND current_approver ! ; -- 2. 检查“已放款”申请的放款日期是否晚于审批通过日 SELECT COUNT(*) FROM credit_application WHERE statusapproved AND disbursement_date IS NOT NULL AND disbursement_date approved_at; -- 3. 检查还款计划表是否为空合同生成后应有数据 SELECT COUNT(*) FROM credit_loan_contract WHERE repayment_schedule IS NOT NULL;预期结果第1条返回100全部pending申请都有current_approver第2条返回0无放款早于审批第3条返回approved申请的数量如30条。若第2条非0说明generate_loan_contract()未被调用需检查post_save信号是否绑定。5.4 压力测试基线用curl模拟并发提交测出你的服务器瓶颈有了100条数据下一步是测接口吞吐。用curl发10个并发请求观察响应时间# 测试申请接口需先获取csrf token curl -X GET http://127.0.0.1:8000/apply/ -b sessionidxxx -s -o /dev/null -w GET申请页: %{http_code} %{time_total}s\n # 测试提交接口POST需构造表单数据 curl -X POST http://127.0.0.1:8000/apply/ \ -H Content-Type: application/x-www-form-urlencoded \ -b sessionidxxx \ -d customer_name压力测试客户 \ -d id_card11010119900307275X \ -d phone13800138000 \ -d annual_income100000.00 \ -d loan_amount50000.00 \ -d annual_rate0.075 \ -d loan_term24 \ -d purpose装修 \ -s -o /dev/null -w POST申请: %{http_code} %{time_total}s\n技巧-w参数输出HTTP状态码和总耗时。若time_total超过2s说明视图层或数据库层有瓶颈。此时打开Django Debug Toolbarsettings.py中DEBUGTrue且INSTALLED_APPS含debug_toolbar看SQL查询次数——本项目正常应≤3次/请求1次客户查重、1次申请插入、1次审批流插入。若超10次检查views.py中是否有多余的.all()或.count()。从那以后我每次拿到新源码包第一件事就是进Django Shell跑CreditApplication.objects.all()[:5]看数据能不能出来第二件事是python manage.py showmigrations确认迁移没卡住第三件事是grep -r mysqlclient requirements.txt确保依赖写死版本。这三步走完80%的“跑不起来”问题当场消失。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

Agentic OCR:从文档解析到AI智能体的范式升级

Agentic OCR:从文档解析到AI智能体的范式升级

1. 这不是又一个OCR工具,而是一次文档理解范式的迁移“OCR已死”这句话乍看耸人听闻,但如果你过去三年里反复调试过Tesseract的PSM参数、为PDF中嵌入的扫描图手动切分区域、在PyMuPDF提取的文本里写正则去修复换行断裂的地址字段,或者被“识别…

📅 2026/10/27 16:46:40
SDD与规范编程:OpenSpec和SuperPowers的黄金组合

SDD与规范编程:OpenSpec和SuperPowers的黄金组合

1. 项目概述:SDD与规范编程的黄金组合在软件工程领域,SDD(Specification-Driven Development)正逐渐成为提升代码质量的新范式。最近我在一个金融级系统中实践了基于OpenSpec和SuperPowers的规范编程方案,这套组合拳让…

📅 2026/10/27 16:46:40
NTFS与FAT32无损互转工具实测与技巧

NTFS与FAT32无损互转工具实测与技巧

1. 为什么我们需要NTFS和FAT32互转文件系统转换这个需求,在存储设备使用过程中其实非常常见。我遇到过很多次这样的情况:刚买了个64GB的U盘准备在车上放音乐,结果车载系统提示"不支持NTFS格式";或者想把游戏安装到移动硬…

📅 2026/10/27 16:46:40
MORE NEWS

更多资讯

📰

网页嵌入flowplayer流媒体播放器:Red5与RTMP/HLS版本配置实战

简介:面向需要在网页端集成流媒体播放能力的开发者,这份资源提供了一套基于 Flowplayer 的完整嵌入方案,重点解决 RTMP 流在浏览器中的播放问题。包内共 8 个文件,以 swf 播放器核心与插件、js 脚本、html 示例页为主,…

📰

躺平挖alpha:把重复动作变成系统的工作流优化指南

这一篇是“躺平挖 alpha”系列的第三篇。前两篇发出去之后,后台留言里最高频的问题倒不是“怎么挖”,而是“你标题里的 alpha 到底是什么意思”。这个问题被问多了以后我发现,alpha 这个词在如今已经被抡圆了用:搞图像的人看见 al…

📰

Unity URP管线核心解析与性能优化实战

1. URP管线基础:从Built-in到可编程渲染Unity的渲染管线经历了从Built-in到可编程的演进过程。传统Built-in管线作为Unity的默认渲染方案,虽然功能全面但存在灵活性不足的问题。2018年推出的Scriptable Render Pipeline(SRP)彻底改…

📰

Agent开发实战:从面经需求到安全可观测架构

1. 面经不是终点,而是Agent开发的起点:为什么90%的求职者把“面经”用错了我第一次在字节跳动后端面试现场听到“请手写一个能调用OpenAPI并自动补全JSON Schema的Agent调度器”时,手心全是汗。不是因为不会写——那会儿我已经用Codex搭过三个…

📰

Coding Agent 正在演变为运行时环境(Agent Runtime)

1. 从“写代码的AI”到“跑代码的环境”:Coding Agent 的身份跃迁最近在几个技术社区里反复看到一个现象:年初还在聊“哪个 Coding Agent 写 Python 脚本最稳”,年中讨论已经变成“我的 Coding Agent 怎么总卡在 sandbox 启动环节”&#xff…

📰

酒桌小游戏小程序源码:轻互动+流量主变现实战指南

简介:这是一套开箱即用的酒桌互动类微信小程序源码,面向小程序开发者及轻量级创业团队,解决娱乐类小程序快速上线与流量变现的双重需求。资源包含253个文件,以76个JS逻辑文件、110个PNG图标与背景图、18个WXML页面结构文件、22个W…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬