学习日记-20190612

Android开发的核心元素、Python使用内置模块获取类、方法以及参数

Android开发的核心元素

  • Activity-A rectangular area that displays sth.

显示某个矩形区域。

onCreate()-the first method that will fire when an Activity is loaded

findViewById()-a way to locate resources in your Activity

  • Intent-An action being requested that the device should try to perform

请求设备尝试执行的操作

getIntent()-gets the Intent that was passed to an Activity

获取传递给Activity的Intent

putExtra()-passes data as a key-value pair

getExtras().getString()-retrieved the String that was passed to the Intent object

startActivity()-used to launch another Activity

  • IntentService-Services that can handle Intent requests and process the work to be done.

可以处理Intent请求并处理要完成的工作的服务。

  • BroadcastReceivers-Receives an intent from a sendBroadcast method often indicating that some work has been completed.

从sendBroadcast方法接收Intent,通常表示某些工作已完成。

用python生成激活码并存入MySQL数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*-
# @Time : 2019/6/11 19:44
# @Author : zhengjiani
# @Software: PyCharm
# @Blog :https://zhengjiani.github.io/
"""
做为 Apple Store App 独立开发者,
你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)
"""
import random
import string
from sqlalchemy import Column,String,Integer,create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def get_activation():
number=0
list_activation=[]
while number<201:
patter_str=string.digits+string.ascii_letters
# random.sample(sequence, k),从指定序列中随机获取指定长度的片断
# 并且不会修改原有片段
activation_code=''.join(random.sample(patter_str,4))
list_activation.append(activation_code)
number+=1
return list_activation

# 创建对象的基类
Base=declarative_base()
# 定义激活码对象
class Acticode(Base):
__tablename__ = 'acticode'
id = Column(Integer,autoincrement=True,primary_key=True)
code = Column(String(20))
# 初始化数据库链接
engine = create_engine('mysql+pymysql://root:[password]@localhost:3306/test')
# 创建表
DBSession = sessionmaker(bind=engine)
Base.metadata.create_all(engine)
session = DBSession()
activation=get_activation()
for i in activation:
new= Acticode(code=i)
session.add(new)
session.commit()
# 关闭session:
session.close()

Python操作redis数据库,因为第一次接触redis数据库,所以详细写一下

首先是安装

1
pip install redis

阿里云centos中安装redis的全过程

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd /usr/local
mkdir redis
cd ~
tar -xzvf redis-5.0.5.tar.gz -C /usr/local/redis
cd /usr/local/redis/redis-5.0.5
make
cd /usr/local/redis/redis-5.0.5/src
cp {redis-server,redis-cli,redis-benchmark,redis-check-aof,redis-check-rdb,redis-sentinel} /usr/local/bin
# 离开src目录
./utils/install_server.sh
chkconfig --list
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop
# 远程登录
cd /etc/redis
vim 6379.conf

Python使用内置模块获取类、方法以及参数

1
2
3
clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)
funmembers = inspect.getmembers(eval(page),inspect.isfunction)
params = inspect.getfullargspec(getattr(eval(page),func[0]))

将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from PIL import Image,ImageDraw,ImageFont
def add_num(img):
# 生成图像副本
draw = ImageDraw.Draw(img)
# 获取图像大小
width,height = img.size
# 获取⚪的直径
RD = min(width *4//16,height*4//16)
# ⚪的位置范围,图像右上角
positionC=(width-RD,0,width,RD)
# 数字Num的起始位置
positionNum=(width - RD *15//16 , RD *1/16)
Red = (255, 0, 0)
White = "#ffffff"
myfont = ImageFont.truetype('./yahei.TTF', 120)

draw.ellipse(positionC, fill=Red)
draw.text(positionNum, '100', font=myfont, fill=White)
img.save('NumberAddedww.jpg', 'jpeg')
return 0
image = Image.open('weixin.jpg')
add_num(image)
# 参考网络,如有侵权,通知我删除