自定义view

Django-3

元气小坏坏 提交于 2019-12-02 03:38:49
目录 Django-3 JsonResponse form表单上传文件 CBV源码分析 案例: 分析 模板传值 过滤器 标签 自定义过滤器和标签 步骤 自定义过滤器: 自定义标签: 模板的继承 模板的导入 Django-3 JsonResponse ​ 返回json格式的数据 ​ 为什么要给前端返回json格式的字符串 ​ 前后端分离,就是基于json格式传输数据 ​ 前端从后端写的接口中拿到一个能够共同识别的json格式的数据 前端 后端 JSON.stringify() json.dumps() JSON.parse() json.loads() # JsonResponse,后端给前端传json数据 def index(request): dic = {'username':'jason真帅 我好喜欢哦~','pwd':'123'} #### 指定json序列化时,不自动转ascii,这样就能显示中文了 json_str = json.dumps(dic,ensure_ascii=False) return HttpResponse(json_str) #### 利用JsonResponse里的json_dumps_params的默认值,改为字典{'ensure_ascii':False}的键值对形式,也能将中文显示出来。 return JsonResponse(dic

微信小程序如何自定义新用户引导页

冷暖自知 提交于 2019-12-02 03:26:42
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_38194393/article/details/89495786 根据不同的需求,现在出现了给小程序添加新用户引导页面。 设计流程:指引用户点击右上角,将本小程序添加到我的小程序。点击“去试试”后不再显示。前提是新用户或者首次打开。 设计图: 实现步骤: 1》思路:在小程序首页生命周期函数中,加入条件判断。在用户点击【记住了,我去试试】事件上增加缓存信息。 2》用这个缓存在用户每次打开小程序的时候来判断是否显示 页面的代码: <view class='page-cont'> <view class='top'> <image src='{{cdnPath}}img/firstOpen/topjiantou.png'></image> <view class='p_one'>添加友途车服小程序,解决更多养车问题</view> </view> <view class='cont'> <view class='cont-p'> <view class='text'><text>1</text></view><view>点击右上角</view> <image src='{{cdnPath}}img/firstOpen

Django的日常-3

倾然丶 夕夏残阳落幕 提交于 2019-12-02 03:20:30
目录 Django的日常-3 JsonResponse form表单上传文件 CBV的源码分析 视图层 模板传值 过滤器 标签 自定义过滤器和标签 Django的日常-3 JsonResponse 在之前我们就知道,不同语言或者说系统之间,Json格式的数据是通用性最好的,所以我们通常会选择用json格式来从后端向前端传输数据,在Django里面,我们不需要像之前那样导入json模块然后用 json.dumps和json.loads 来打包和解析json数据,因为我们有一个专门的函数来做json数据的转换,就叫做JsonResponse. # 首先我们还是需要导入这个函数 from django.http import JsonResponse # 下面的内容我们需要写在一个函数里面,方便调用 def index(request): user = {'username':'nick哈哈哈','pwd':'123'} return JsonResponse(user,json_dumps_params={'ensure_ascii':False}) l = [1, 2, 3, 4, 5, 5, 6] return JsonResponse(l, safe=False) ''' 在使用JsonResponse模块的时候,要注意的几点是: 1.

android CoordinatorLayout使用

余生长醉 提交于 2019-12-01 17:54:15
一、CoordinatorLayout有什么作用 CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能: 1、作为顶层布局 2、调度协调子布局 CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。CoordinatorLayout通过设置子View的 Behaviors来调度子View。系统(Support V7)提供了AppBarLayout.Behavior, AppBarLayout.ScrollingViewBehavior, FloatingActionButton.Behavior, SwipeDismissBehavior<V extends View> 等。 使用CoordinatorLayout需要在Gradle加入Support Design Library: compile 'com.android.support:design:22.2.1' 1 1 二、CoordinatorLayout与FloatingActionButton 定义布局文件: <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="

android 事件分发

淺唱寂寞╮ 提交于 2019-12-01 08:15:31
参考: https://baijiahao.baidu.com/s?id=1617478464513215480&wfr=spider&for=pc 感谢 '程序引力'的文章,本文的图片资源和论述都来自 '程序引力' 一.分发事件者 Activity、View,ViewGroup 二.分发动作 分发动作都封装在MotionEvent类中: 动作:按下、滑动、抬起与取消 事件流:以按下未开始,中间有滑动或长按,以抬起或取消为结束. 三.分发的方法 dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent note: ViewGroup类中,实际是没有onTouchEvent方法的,但是由于ViewGroup继承自View,而View拥有onTouchEvent方法, 故ViewGroup的对象也是 可以调用 onTouchEvent方法的。故在表格中表明ViewGroup中存在onTouchEvent方法的。 四.事件分发过程 向下传播: 1.事件从Activity向viewgroup传播被称作’向下传播‘。 2.viewgroup包含若干View,事件从viewgroup向其子View传播,也被称为’向下传播‘。 向上传播:与’向下传播‘相反。 A.分发方法dispatchTouchEvent(true/false->能处理

创蓝闪验接入文档

拟墨画扇 提交于 2019-12-01 07:55:53
一.准备工作 概述 本文是闪验SDK_Android v2.3.0 版本的接入文档,用于指导SDK的使用方法,默认读者已经熟悉 IDE(Eclipse 或者 Android Studio)的基本使用方法,以及具有一定的 Android 编程知识基础。 闪验SDK支持minSdkVersion 16及以上版本 闪验SDK支持中国移动3/4G、联通3/4G、电信4G的取号能力,在3G网络下时延会更高 闪验SDK支持单数据网络/数据网络与WiFi网络双开,不支持单WiFi网络 对于双卡手机,闪验SDK只对当前流量卡取号,双卡均未开数据流量SDK将会返回错误码 创建应用 应用的创建流程及APPID的获取,请查看「 账号创建 」文档 快速体验demo Android压缩包附带的apk文件夹中是闪验demo的安装包,可以直接安装到Android手机上。并快速体验闪验在您的手机上的表现。 Android压缩包附带的demo文件夹中是闪验的示例工程,使用Android studio打开示例工程,完成以下步骤配置,然后直接运行起来测试。 a.将build里面的applicationId换成对应的测试包名 b.将签名配置改成您的签名配置 c.将AppId和AppKey换成您在闪验平台创建应用后生成的信息 开发环境搭建 (1)将开发包拷贝到工程 a

Android5.0+(CoordinatorLayout)

旧街凉风 提交于 2019-11-30 12:44:16
英文原文: https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout 这篇文章专门讲解和CoordinatorLayout相关的知识点,这也是Design Support Library中最重要与最难的部分。 概览 CoordinatorLayout 实现了多种Material Design中提到的 滚动效果 。目前这个框架提供了几种不用写动画代码就能工作的方法,这些效果包括: 让浮动操作按钮上下滑动,为Snackbar留出空间。 扩展或者缩小Toolbar或者头部,让主内容区域有更多的空间。 控制哪个view应该扩展还是收缩,以及其显示大小比例,包括 视差滚动效果 动画。 设置 首先确保遵循了 Design Support Library 的使用说明。 浮动操作按钮与Snackbar CoordinatorLayout可以用来配合浮动操作按钮的 layout_anchor 和 layout_gravity属性创造出浮动效果,详情请参见 浮动操作按钮 指南。 当 Snackbar 在显示的时候,往往出现在屏幕的底部。为了给Snackbar留出空间,浮动操作按钮需要向上移动。 只要使用CoordinatorLayout作为基本布局,将自动产生向上移动的动画。浮动操作按钮有一个 默认的

Android有用代码片段(二)

穿精又带淫゛_ 提交于 2019-11-30 08:36:18
记得2011年的时候,整理了 android有用代码片段 这篇文章,后来,越添加越多,很是不方便,决定,每20条为一篇,分开记载,很多内容是从别的博客上面转载而来,由于疏忽没有说明来处,敬请作者谅解! 二十一、获取手机屏幕分辨率 [java] view plain copy DisplayMetrics dm = new DisplayMereics(); getWindowManager().getDefaultDisplay().getMetrics(dm); float width = dm.widthPixels * dm.density; float height = dm.heightPixels * dm.density 在这里问什么要乘以 dm.density 了,是因为通过dm.widthPixels的到的结果始终是320,不是真实的屏幕分辨率,所以要乘以dm.density得到真实的分辨率。 二十二、在Activity里面播放背景音乐 [java] view plain copy public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.mainlay); mediaPlayer =

Android有用代码片段(三)

梦想的初衷 提交于 2019-11-30 08:35:47
前两个已经到第四十个了,所以还得再开一篇,用于记录,以前文章: Android有用代码片段(二) 、 android有用代码片段 ,有需要的朋友可以去看一下。 四十一、数据库写入图片信息: [java] view plain copy print ? <span style= "font-family:Tahoma, 'Microsoft Yahei', Simsun;color:#444444;" >数据库中的字段设置为 binary类型 Bitmap bitmap = BitmapFactory.decodeFile(path); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 50 , baos); String sql = "insert into pic_info(pic_data, pic_name,pic_size,send_date,is_success) " + "values(?,?,?,?,?)" ; Object[] args = new Object[]{baos.toByteArray(), name, size, now, isSucess}; db.insert(sql, args); 读取数据库的图片信息:

DRF节流组件

拈花ヽ惹草 提交于 2019-11-30 07:47:50
1.DRF节流组件自定义(限制访问频率)     方式一 自定义类和方法:   和上述的认证组件使用方式一样,定义一个频率组件类,推荐继承 BaseThrottle 类,   需定义 defallow_request(self,request,view):pass 方法和 defwait(self):pass 提示信息方法     seetings.py  INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config', 'rest_framework', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf