1.红盟云卡系统v1.1.17虚拟商品在线售卖平台源码
2.django如何做弹窗?
3.零基础自学Java要多久
4.django如何弹窗?
5.Selenium基础 — 浏览器弹窗操作
红盟云卡系统v1.1.17虚拟商品在线售卖平台源码
红盟云卡系统是交班交互一款基于PHP+MySQL开发的虚拟商品在线售卖平台,提供全面的弹窗弹窗在线售卖解决方案。
版本更新至v1.1.,源码年6月日发布。交班交互此次更新着重优化用户体验与安全性,弹窗弹窗新增了强制登录插件,源码php源码扩展确保用户在访问平台前需完成登录操作,交班交互增强了账号管理的弹窗弹窗规范性。
为了提升社交互动性,源码系统新增QQ微信防红插件,交班交互用户可通过绑定社交账号进行身份认证,弹窗弹窗增加可信度。源码同时,交班交互首页弹窗插件的弹窗弹窗加入,能够更直观地向用户展示最新动态,源码提高用户粘性。
在视觉效果方面,鱼儿游背景特效插件的引入,为平台增添了生动的氛围,提升用户浏览体验。官方微信支付插件增加jsapi类型,满足更多支付场景的需求,确保交易过程的流畅与安全。
后台管理方面,订单列表增加下单必填项字段显示,便于管理人员快速获取关键信息,提升工作效率。修复了分站个人中心开通分站时出现的报错问题,保障了多站点运营的稳定性。对于提现操作,修复了0元可提交的问题,确保了提现流程的合理性。
商品展示方面,修复了商品页弹窗无效的问题,确保用户能够获取完整商品信息。同时,解决了用户充值余额报错的问题,优化了用户资金流转体验。对于部分用户在添加商品时设置价格无效的问题,进行了修复,保障了商品定价的准确性。
针对特定显示问题,修复了水瓶座销量库存显示开关在手机端无效的问题,确保了移动端用户获取信息的准确性。邮件插件的修复,提高了通知效率,增强用户沟通效果。最后,包头pc源码解决了添加商品时排序字段设置无效的问题,提升了商品管理的灵活性。
django如何做弹窗?
导读:很多朋友问到关于django如何做弹窗的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!Django框架中path及re_path中name参数的使用和模板渲染(八)name参数可以给一个匹配的url地址取名字,一般用于模板,也可以使用reverse进行页面重定向。
1、为APP中的books里面的urls.py(给url取个名字)
2、为APP中books里面的views.py(redirect是重定向,reverse是将url的name解析成url本身的函数)
1、name参数可以给这个url取一个合适的名字。通过给url取名字,以后在view或者模板中使用这个URL,就只需要通过这个名字就可以了。这样做的原因是防止url的规则更改,会导致其他地方用了这个url的地方都需要更改,但是如果取名字了,就不要做任何改动了。
2、注意事项:
1、模板放在哪?
2、在项目主目录setting.py中进行模板路径配置;将我们的设置好的存放html模板的templates目录路径添加到DIRS中。
注意:reverse方法里面也可以有kwargs参数,直接将参数传给被reverse解析后要跳转的url路径中的捕获参数,来达到传参的效果。
python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件
在Django项目开发中,不能像正常web开发一样通过'imgs/bg.jpg'访问本地静态文件,需要做一些配置,才能实现静态文件的访问。
一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。
二、项目配置
1、打开settings.py,在底部添加:
2、打开urls.py,在urlpatterns中添加:(注意,源码资本推荐如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了importsettings):
(不过我经过实测,不加这一个,也可以完成静态文件的访问)
3、在html模板最上面添加:
然后在需要的地方按照这个格式进行调用,如:
最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。
python的django做什么的Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用
于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于年7月在BSD许可证下发布。这
套框架是以比利时的吉普赛爵士吉他手DjangoReinhardt来命名的。
推荐学习《python教程》
框架介绍
Django项目是一个Python定制框架,它源自一个在线新闻Web站点,于年以开源的形式被释放出来。Django框架的核心组件有:
用于创建模型的对象关系映射
为最终用户设计的完美管理界面
一流的URL设计
设计者友好的模板语言
缓存系统。
Django(发音:[`dɡ?])是用python语言写的开源web开发框架(opensourcewebframework),它鼓励快速开发,并遵循MVC设
计。Django遵守BSD版权,初次发布于年7月,并于年9月发布了第一个正式版本1.0。
Django根据比利时的爵士音乐家DjangoReinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为SDTimes,位列“API、库和框架”
分类第6位,被认为是该领域的佼佼者。
设计哲学
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,
Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开
发和DRY(DoNotRepeatYourself)原则。
django是做什么的?Django是基于Python的免费和开放源代码Web框架,它遵循模型-模板-视图(MTV)体系结构模式。它由DjangoSoftwareFoundation(DSF)维护,bug的源码这是一个由非营利组织成立的独立组织。
Django的主要目标是简化复杂的,数据库驱动的网站的创建。该框架强调组件的可重用性和“可插入性”,更少的代码,低耦合,快速开发以及不重复自己的原则。整个过程都使用Python,甚至用于设置文件和数据模型。Django还提供了一个可选的管理创建,读取,更新和删除界面,该界面通过自省动态生成并通过管理模型进行配置。
一些使用Django的知名网站包括公共广播服务,Instagram,Mozilla,华盛顿时报,Disqus,Bitbucket,和Nextdoor。
Django创建于年秋天,当时《劳伦斯日报》世界报纸的网络程序员AdrianHolovaty和SimonWillison开始使用Python来构建应用程序。西蒙·威利森(SimonWillison)的实习期结束前不久,雅各布·卡普兰·莫斯(JacobKaplan-Moss)在Django的发展中就被聘用了。它于年7月在BSD许可下公开发布。该框架以吉他手DjangoReinhardt的名字命名。年6月,宣布新成立的Django软件基金会(DSF)将来将维护Django。
年7月,与一些Django联合创始人和开发人员建立联系的软件咨询公司RevolutionSystems在劳伦斯举办了周年纪念活动。
Django的设计理念如下:
松耦合——Django的目标是使堆栈中的每个元素彼此独立。
更少的编码——更少的代码,因此可以快速开发。
不重复自己(DRY)——一切都应该只在一个地方开发,而不是一次又一次地重复。
快速开发——Django的理念是尽一切可能促进超快速开发。
简洁的设计——Django严格按照自己的代码维护简洁的设计,并易于遵循最佳的Web开发实践。
Django的一些优势如下:
对象关系映射(ORM)支持——Django在数据模型和数据库引擎之间建立了桥梁,并支持包括MySQL,Oracle,Postgres等在内的大量数据库系统。
多语言支持——Django通过其内置的国际化系统支持多语言网站。因此,您可以开发支持多种语言的网站。
框架支持——Django内置了对Ajax,RSS,exe改成源码缓存和其他各种框架的支持。
GUI——Django为管理活动提供了一个很好的即用型用户界面。
开发环境——Django带有轻量级的Web服务器,以促进端到端应用程序的开发和测试。
Django是PythonWeb框架。和大多数现代框架一样,Django支持MVC模式。
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。
django-admin的多选框怎么做出来的django-admin的多选框怎么做出来的
add(XXX),XXX即为你要添加到JFrame,也就是你这个最大的窗口里的东西
而getContentPane()是不要写参数的,返回的即为你JFrame里的JPanel
JPanel对象=(JPanel)getContentPane(),是首先获得这个窗口(JFrame)的Container,然后用(JPanel)把它转换成JPanel,你所写的对象就可以用对象.add(XXX)来添加东西了
setContentPane(JPanel),事实上参数是Container,也就是替代原有的Container(也就是我们用getContentPane()得到的),而JPanel是Container的子类,可以作为参数。用这个方法,就要先建一个JPanel,然后用它替换原有的Container
add是添加,getContentPane()是获取内容窗体的意思,setContentPane()是设置窗体的意思,只要你理解了他们的意思,其实不难分辨
django表单提交后如何用弹框提示成功?从代码中看到post提交后进行了视图渲染,所以你可以post视图渲染时向前端模板传递一个变量,前端通过判断这个模板参数来决定是否显示成功弹窗
结语:以上就是首席CTO笔记为大家介绍的关于django如何做弹窗的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
零基础自学Java要多久
我个人学习Java就是自学的,所以还是有一些发言权,用了一年的时间在学校自学了Java,学习的过程中无非就是两个字最重要:坚持。Java需要学习多久?每个人情况不同,有的学得快有的慢,几个月或者更久
自学的人,就是自己没有很强方向感的人,一般都能坚持2个月到3个月,学不会就放弃了;有很强的目标,并且很热爱Java这行业的人,天赋好点的是6-8个月左右;而培训学习的人,一般都是在4-6个月就能够达到初级Java工程师的工作要求。
自学也要从基础开始, 也就是第一阶段,每个编程都有自己的语言,一阶段都是偏基础内容,如果有系统的学习方案,基本上一个月可以学习完,当然,这个过程中会遇到各种各样的问题,不懂得需要及时问。
第二阶段就是java服务器端开发基础,这个结算掌握的内容相对的较多,例如:web框架、常用的类库、以及一些相关的基础知识。这些都要学习和了解。
第三部分就是开源框架及实战项目了,对于项目首先要对项目的目的、功能、基本使用有个大概的了解,如何下载、安装、甚至 基本使用该项目所需要的知识;基础学过以后,就要深入地了解该项目,如项目的配置管理,高级功能,以及最佳实践。如果有时间还可以尝试从源码构建该项目。
那么最后学习的才是架构技术,这个时候要逐渐的有自己的完整作品,项目经验以及方案,这样才能在面试中有机会应聘成功
因为学习Java是一个相对漫长的过程,熬夜是不可避免的,而我现在觉得,如果年轻的时候不熬夜拼一拼,那以后真的要遭罪了。毕业之后找到一份的工作,不多不少还算满意,够自己生活。
然后就在工作中不断积累自己的项目经验,就这样一直做到现在,学习Java要一直保持学习的心态,因为互联网更新速度快,不学习新知识的人就会被淘汰,现在竞争确实很大,逼着自己也要学。
下面是我给自学Java的几个建议建议一:有系统的学习方案
系统的学习教程,先把Java学了一遍之后才是真正的入门,然后就是不断的练习,不断的巩固,为之后的工作打下坚实的基础。
建议二:学习Java不要先看书学
一定要先把一块的知识点学完一遍,并且自己多多少少会动手操作,然后去看书温习。还有不要盲目的看视频,很多人都是光看视频,然后在心里没有一个操作的概念,这样的学习方法最后一定会浪费时间到放弃,所以学习Java之前一定要知道这些东西,这都是走过来的人以前走的弯路。
建议三:找到适合自己的方法
很多人都会有一个疑问,就是学习Java能看懂,但是不会写,所以学习Java一定要掌握一个有效率的学习方法,一个适合自己的学习方法,作为一个新人,千万不要自己瞎摸索,没有必要,可以请教别人一定要去问。
建议四:一定要有一个明白人去指导你
Java的专业程度很强,%的问题自己很难解决,而且会很浪费时间,一个小问题可以困扰一天,这样自信心会受到严重的打击。
学习Java的四个阶段一:Javase基础
二:网页三剑客html+css+js
三:JavaWeb和数据库:
四:JavaEE框架:企业级开发,Struts2、Spring框架、Hibernate框架、Maven核心技术、MyBaits框架、高手进阶;
当你学完了Java,应该如何去找工作?
一.最重要的还是自身技能,这是硬件标准,标配,自己能力怎么样自己心里最清楚,如果自己都觉得自己不会的,我觉得还是好好提升技术吧。
二.简历,写简历需要有一定的学问,一篇要把你所有的优势说明白,而且现在写简历,千万不可以写得太死板,一定要写的另类一些,因为简历太多,比如你写,喜欢学习,性格随和,等等太普遍,你会写别人也会写,没有新意,而且在写项目经历的时候更要注意。
三 .面试技巧,面试是最重要的一部分,你是否能应聘成功取决你面试怎么样,面试官都是一些经验老道的,所以你回答他问题的时候要注意技巧,比如:当他问道你一个异常的时候的,你不会,但是你不要说不会,你可以说之前我遇到过,但是现在忘了,如果我遇到可以解决等等。当然了,如果你自己很NB,会很多东西,信心十足,你自然会面试成功,所有的一切取决于你的本领如何。
技术的学习,并不是轻易就能学会的,自学技术对于学习方法,自制力等更是有着非常高的要求,而且自学的效率和成果会因人而异,试想一下,你有多少次下定决心自学英语,最终都半途而废了,背的单词一直停留在了"abandon"上,技术的学习也是如此。
如果你想更高效的学技术,更系统的学知识,并随时掌握行业和技术发展动态,建议你可以参加培训学习,有专业的老师为你指导如何学习,还有老师随时在身边解答疑问,有任何不懂的问题可以随时解决。
IT行业的道路固然是充满了阳光了,一路上充满了美景,但是也充满了艰苦和崎岖,在突破了之后一路的阴霾,云霄之上,必然是一番广阔的云海。
关于自学我是过来人,我个人是有收集不少的资料,还要很多的适合自学的资料,放心免费的
在这里说一下,因为我是自学出来的,也深知自学的艰苦,如果你现在也在自学Java,在自学的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,资料都可以评论留言,有遇见任何问题都可以随时来交流,只有不断的碰撞和交流,我们才能发现解决自己的问题,以此取长补短。缺乏基础入门的视频教程也可以直接来找我要最新Java精讲视频,PDF书籍教程,面试题,学习手册点击进
django如何弹窗?
导读:很多朋友问到关于django如何弹窗的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!linux中弹不出gui界面在进行python写GUI程序的时候,使用Tkinter,发现无法执行程序,报错如下:
Xconnectiontolocalhost:.0broken(explicitkillorservershutdown)
原因分析:
主要是因为环境变量设置不当导致。
解决方法:
报错的使用的xshell,在这里调用会使用环境变量DISPLAY
报错前的DISPLAY值为:
$echo$display
localhost:.0
进行设置DISPLAY为正确值:
首先查看xshell运行机器的IP地址,在我运行的IP地址为..1.,从而设置DISPLAY如下:
exportDISPLAY=..1.:0.0
再次运行GUI程序,即可正确的显示界面。
python在linux上的GUI无法弹出界面的更多相关文章
Nginx+uWSGI+Django+Python在Linux上的部署
搞了一整天,终于以发现自己访问网络的端口是错误的结束了.首先要安装Nginx,uWSGI,Django,Python,这些都可以再网上查到.安装好后可以用whereis命令查看是否安装好了各种...
python脚本linux上后台执行
1.脚本后加加了以后可以使脚本在后台运行,这样的话你就可以继续工作了.但是有一个问题就是你关闭终端连接后,脚本会停止运行python3run.py/dev/null...
使用Python在Linux上实现一键回归测试
从代码库迁出代码—-pexpect的使用测试人员从代码库(例如CVS)迁出代码的过程中,需要手动输入访问密码,而Python提供了Pexpect模块则能够将手动输入密码这一过程自动...
利用python监测linux上的服务(简单实现服务宕掉自动发送邮件)
python这里用到了四个python模块:importtime(时间模块)importre(正则模块)importsocket(监测端口模块)importyagmail(...
使用Python获取Linux系统的各种信息
哪个Python版本?当我提及Python,所指的就是CPython2(准确的是2.7).我会显式提醒那些相同的代码在CPython3(3.3)上是不工作的,以及提供一份解释不同之处的备选代码...
使用Python获取Linux系统信息
探索platform模块platform模块在标准库中,它有很多运行我们获得众多系统信息的函数.让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧:...
转使用Python获取Linux系统信息
在本文中,我们将会探索使用Python编程语言工具来检索Linux系统各种信息.走你.哪个Python版本?当我提及Python,所指的就是CPython2(准确的是2.7).我会显式提醒那些相...
在linux上安装python,jupyter,虚拟环境(virtualenv)以及虚拟环境管理之virtualenvwraper
一,安装python.下载python3源码wget.解压缩源码包,去...
Python基于Python实现批量上传文件或目录到不同的Linux服务器
基于Python实现批量上传文件或目录到不同的Linux服务器?by:授客QQ:实现功能1测试环境1使用方法.编辑配置文件conf/rootpath_fo...
随机推荐
3、Object对象的两大方法(hashCode-equals)总结
Object类是所有java类的父类.用户定义了如下一个Person类public?class?Person{ }在类定义中并没有明确继承Object类,但是编译器会自动的完成这个过程.既然所有...
URALSeaBurial简单Floodfill
问这个人掉落的海域包含几个岛屿.八方向相连为同一片海域,四方向相连为同一个岛屿.与边界相连的岛屿不算.方法:在给定地图外面填充一圈".",从这个人掉落的地方开始进行floodf...
CEdit的简单用法
今晚闲来无事,写篇博文聊解解闷~CEdit这个空间类,我之前倒是用过,不过那个时候用的还比较菜,现在么,依旧比较菜~首先,因为我今天刚做完了一个局域网聊天软件,用的就是CEdit来显示和获取数据的...
短信发送AZDG加密算法
publicstaticstringpassport_encrypt(stringtxt,stringkey){ //?使用随机数发生器产生?...
ubuntu默认进入命令行
图形模式下,首先进入终端:1.运行sudovi/etc/default/grub2.找到GRUB_CMDLINE_LINUX_DEFAULT=”quietsplash”3.改为GRUB_...
南阳理工ACMSkiing问题
描述Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底...
sqlserver资源下载
安装包可以从itellyou下载NorthWind安装SQLSampleDb.msi之后可以在C:\SQLServerSampleDatabases目录//...
JavaScript类的定义和引用JavaScript高级培训自定义对象
在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等.?一,概述在Java语言中...
聚合函数字段注意.where和having的区别
当使用聚合函数时,出现在select中的字段要么出现在聚合函数里,要么出现在groupby子句里.像下面这句是错误的:1SELECT?detno,AVG(sal),jobFROM?emp...
android下身份验证方式调用webservice
在企业开发领域,webservice还是经常被用到的服务体系,因为他对安全事务支持都比较好.有时候,我们就需要在android下调用后端的webservice服务,因为在内部网络环境下,所有需要ba...
热门专题
如何在django中实现文本输入框+下拉选择框的叠加形式首先,在django视图函数中,传递obj_list=[1,2,3]类似这样的一个列表。defshow_data(request):obj_list=[1,2,3]passreturnrender_to_response('index.html',{ 'obj_list':obj_list})然后在index.html模板文件中
如何正确使用DjangoForms
Djangoforms使用容易,又方便扩展,因此Djangoadmin和CBVs基本都基于forms使用.事实上,由于djangoforms的强大验证功能,大多数DjangoAPI框架都是用forms作为其验证的一部分.
虽然djangoforms的学习需要花费一点时间,但如果将forms,models和views结合起来使用,可以花费很少的经历来完成庞大的工作.
1.DjangoForms的强大之处
有些django项目并不直接呈现HTML,二是以API框架的形式存在,但你可能没有想到,在这些API形式的django项目中也用到了djangoforms.djangoforms不仅仅是用来呈现HTML的,他们最强的地方应该是他们的验证能力.下面我们就介绍几种和Djangoforms结合使用的模式:
2.模式一:ModelForm和默认验证
最简单的使用模式便是ModelForm和model中定义的默认验证方式的组合:
#myapp/views.py
fromdjango.views.genericimportCreateView,UpdateView
frombraces.viewsimportLoginRequiredMixin
from.modelsimportArticle
classArticleCreateView(LoginRequiredMixin,CreateView):
model=Article
fields=('title','slug','review_num')
classArticleUpdateView(LoginRequiredMixin,UpdateView):
model=Article
fields=('title','slug','review_num')
正如以上代码中看到的一样:
ArticleCreateView和ArticleUpdateView中设置model为Article
两个view都基于Articlemodel自动生成了ModelForm
这些ModelForm的验证,是基于Articlemodel中定义的field转换而来的
3.模式二,在ModelForm中修改验证
在上面的例子中,如果希望每篇articletitle的开头都是"new",那么应该怎么做呢?首先需要建立自定义的验证(validator):
django表单提交后如何用弹框提示成功?从代码中看到post提交后进行了视图渲染,所以你可以post视图渲染时向前端模板传递一个变量,前端通过判断这个模板参数来决定是否显示成功弹窗
结语:以上就是首席CTO笔记为大家介绍的关于django如何弹窗的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
Selenium基础 — 浏览器弹窗操作
说明:在webdriver中,处理JavaScript生成的alert、confirm以及prompt弹窗非常简单。具体方法是通过switch_to.alert()方法定位到alert/confirm/prompt弹窗,然后使用text/accept/dismiss/send_keys方法进行操作。常用操作有:
示例:页面代码片段:
脚本代码:
注意:prompt弹窗输入框,Chrome不显示输入文本 Python版本 3.7.7
由于alert弹窗不够美观,现在大多数网站都会使用自定义弹窗。使用Selenium自带的方法无法处理这种情况,此时就需要使用JS方法进行处理。需求:去掉淘宝首页的自定义弹窗。淘宝首页的自定义弹窗如下:
提示:网页中弹出的对话框,也属于页面自定义弹窗,都可以用下面方式处理。实现方式:这种弹窗属于自定义弹窗的表现形式,可以通过设置HTML、DOM、Style对象中的一个display属性来处理,可以设置元素如何被显示。具体解释可以参考:/jsref/prop_style_display.asp。将display的值设置成none:此元素不会被显示,就可以去除这个弹窗了。注意:手动页面刷新之后还会出现弹窗。步骤如下:
提示:document.getElementById()是JS获取元素的方式,在JS获取元素方式中,只有ById()获取的是一个元素。其他获取元素的方式,都获取的是结果集,需要获取具体元素的时候,注意要使用索引。简单举例:
示例:
最后我这里给你们分享一下我所积累和真理的文档和学习资料,有需要是领取就可以了。
这个大纲涵盖了目前市面上企业百分之的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习。
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
软件测试/自动化测试全家桶装学习中的工具、安装包、插件....
有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看。
如何领取这些配套资料和学习思路图,以及项目实战源码。这些资料都已经让我准备在一个php网页里面了,可以在里面领取扫码或者进Q群交流都可以暗号和备注是哦。
最后送上一句话:世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦。