python的主要运用领域有运维、爬虫、科学计算、快速验证和web。
不过如果想用Python做手机app可以去了解一下QPython。
《QPython》是一个脚本引擎,他整合了Python解释器、Console、编辑器和SL4A库。可以让你在Android设备上运行Python语言开发的程序。它就是Android上的Python!此外,它提供了开发工具能让你在Android设备上方便地开发Python项目。
可以
可以的,不过要通过第三方类库实现,比如kivy。
kivy语言通过编写界面UI,然后利用Python定义一些业务逻辑,可以移植很多功能模块到移动端直接执行。
下面对kivy常见用法做一个汇总。
1、什么是kivy?
kivy是一个开源跨平台的PythonUI框架,就可以快速开发PC、移动端的GUI。
kivy基于Python,采用Python和CPython,界面代码和业务逻辑代码相互分离。
2、HelloWorld怎么写?
在pycharm中编写kivy代码块前,需要在虚拟环境内安装kivy依赖库。
pip3installkivy
然后,定义一个kivy.app.pyApp类的子类,重写build方法。
fromkivy.appimportApp
classMyApp(App):
defbuild(self):
实现父类的build()方法
:return:
pass
接着新建一个控件实例,作为应用的根控件返回。
fromkivy.uix.labelimportLabel
defbuild(self):
把build()方法实现为返回一个控件实例(这个控件的实例也就是你整个应用的根控件)
:return:
#在这个方法里面使用了Label控件
returnLabel(text=HelloWorld!)
#运行HelloWorld
MyApp().run()
最后,直接调用自定义类的run()方法,运行在PC端展示效果如下。
当然,也可以重命名文件名为:kvmain.py,然后利用adb命令拷贝到/sdcard/kv/下,重新冷启动airport应用就可以在移动端上运行了。
3、创建应用的步骤
使用kivy创建App包含3个步骤,分别是:
创建一个子类继承于App类
重写build()方法,返回一个容器控件或者自定义的控件,这个应用作为整个应用的根控件。
编写自定义控件的UI布局及业务逻辑
创建自定义子类的实例,调用run()方法
4、怎么编写UI布局
编写UI布局常用Builder.load_string()方法,传入一段配置代码,生成控件树。
首先需要声明一个根控件类,可以使用kivy中定义的布局容器控件,也可以使用自定义的控件(常用)。
#1.使用kivy定义的容器控件
BoxLayout:
#2.使用自定义的容器控件
<CustomWidget&;:
然后利用层级关系编写父控件、子控件,包含:id、text、高度和高度、对齐关系、颜色等属性。
TextInput:
id:id_input_password
padding:[20,20,20,20]
text_size:500,None
hint_text:请输入密码
halign:center
valign:middle
最后,对于自定义控件中绑定的各种事件需要定义回调方法进行处理掉。
#定义点击事件,传入参数
on_press:root.login(id_input_username.text,id_input_password.text)意的是,利用adbshellam命令打开应用的方式适用于部分不兼容自动化框架的App。
5、中文乱码问题
默认布局属性中包含中文会显示乱码。
针对PC端,只需要把中文字体文件放到同级目录下,利用font_name属性指定字体即可显示正常。
如果是App端,需要利用adb命令,进入到/syst/fonts/下,寻找能显示中文的字体,然后利用font_name属性指定对应的字体,就能显示正常。
#手机端Miui-Bold.ttf字体能显示中文正常
font_name:/syst/fonts/Miui-Bold.ttf
6、能不能来一个实例
下面以创建一个登录界面来说。
登录界面包含两个输入框,包含用户名和密码、一个登录按钮。
首先,我们创建一个类继承自App,重写build()方法,返回一个自定义的控件。
然后编写自定义控件的布局。
Builder.load_string(
<LoginWidget&;:
orientation:vertical
spacing:30
padding:20
canvas:
Color:
rgba:(1,1,1,1)
Rectangle:
size:self.size
pos:self.pos
BoxLayout:
size_hint_y:None
height:48dp
orientation:horizontal
canvas:
Color:
rgba:(1,1,1,.5)
Rectangle:
size:self.size
pos:self.pos
Label:
text_size:300,None
text:用户名:
font_size:15sp
font_name:/syst/fonts/Miui-Bold.ttf
color:1,0,0,1
TextInput:
text_size:500,None
border:10,10,10,10
id:id_input_username
hint_text:请输入用户名
font_name:/syst/fonts/Miui-Bold.ttf
padding:[20,20,20,20]
halign:center
BoxLayout:
size_hint_y:None
height:48dp
orientation:horizontal
canvas:
Color:
rgba:(1,1,1,.5)
Rectangle:
size:self.size
pos:self.pos
Label:
text_size:300,None
text:密码:
font_name:/syst/fonts/Miui-Bold.ttf
color:1,0,0,1
TextInput:
id:id_input_password
padding:[20,20,20,20]
text_size:500,None
hint_text:请输入密码
font_name:/syst/fonts/Miui-Bold.ttf
halign:center
valign:middle
Button:
id:id_btn_login
size_hint_y:None
text_size:100,50
border:(16,16,16,16)
font_name:/syst/fonts/Miui-Bold.ttf
text:登录
margin:100
on_press:root.login(id_input_username.text,id_input_password.text)
Label:
id:id_label_resut
color:1,0,0,1
)
接着编写登录按钮的回调方法,拿到输入的用户名和密码,就能编写业务逻辑。
deflogin(self,username,pwd):
ifnotusernameornotpwd:
print(用户名和密码不能为空!)
popup=Popup(title=Warning,content=Label(text=用户名和密码不能为空,font_name=/syst/fonts/Miui-Bold.ttf),
size_hint=(None,None),size=(600,500),auto_dismiss=True)
popup.open()
else:
resp=requests.get(p>
#登录成功
ifresp.status_code==200:
result=LoginSuccess!
else:
result=LoginFailed!
self.tv_result.text=result
最后,将文件push到手机的/sdcard/kv目录下,重新运行airport就能展示一个登录页面。
7、了解更多
更多复杂的功能可以参观官方API。
#home
“python可以做app,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。”
可以考虑webapp,就是用python写网页,然后借助工具打包成Android或iOS的安装包。
Python开发手机APP可以吗?
首先是肯定的回答,是可以的。需要哪些知识:
python作为一门语言来说,很容易上手。稍微复杂一点就是装饰器、元类和少量的函数编程内容。要是说学什么的话,稍后送学习线路图。
选择什么开发框架:
首先推荐:tornado,因为非阻塞的io原因,性能是很高的,特别适合写后端的api,app的后端应该是rest庚哥的api。并且稳定。
部署服务器:
服务器方面的知识点涉及的东西就很多了。有运维,测试,开发很多的方面。部署和测试推荐包:fabric、nose、unittest(这个是python自带的),版本管理的话推荐git,持续集成推荐使用docker+jenkins;
python后台服务最大可以支持多少pv量:
YouTube,reddit、豆瓣、知乎这样的大流量网站都是python写的,如果我们开发的app规模不是很大的话,可能是不会遇到性能问题的,就算出来性能问题很小几率是python的问题。而是任何语言都会有问题。毕竟web后端不是计算密集型的,而IO是密集型。python和其他语言的区别不会很大的,大量的pv是可以靠着服务器堆出来的,如果是计算量很大的任务,那就要考虑用C或者是C++了;
有没有相关的案例,或者python开发的移动后台:
我告诉你有的,但是很少,app后端开源的不常见,但是会涉及到自身的业务和敏感信息。想要资料的可以找我哦。
最后附送python的学习线路图,其实更多的了解之后才会做出更好的项目:
这个真不建议,非常不方便,如果你真想这么做,有2种方法,一种是QPython,一种是Kivy,下面我简单介绍一下这2种方式:
QPython
这个是手机上编写运行Python的一个软件,集成了Python解释器、QEdit编辑器,可以开发简单的安卓程序,下面我简单介绍一下这个软件:
1.下载安装QPython,这个直接在手机应用中搜索就行,如下,也就12兆左右,直接点击下载就行:
2.安装成功后,我们看一下官方自带的示例,一个简单的安卓程序,打印输入的内容,主要用到androidhelper这个包,如下:
程序运行效果如下,一个简单的安卓程序,比较朴素:
Kivy
这个是一个跨平台的应用开发框架,可以快速创建应用程序,只需编写一套代码,即可运行在目前主流的桌面和移动平台上,像Windows,Linux,OSX,Android,iOS等,下面我简单介绍一下框架的安装和使用:
1.安装kivy,这直接参考官网的教程就行,如下,很快就能安装成功:
2.安装成功后,我们可以编写一个简单的测试程序,测试一下kivy框架是否安装成功,如下,很简单:
程序运行效果如下:
3.接着就是打包这程序为手机app,这里需要先下载官方自带的kivy虚拟机,借助这个虚拟机将kivy程序打包成手机app,如下,这个直接在官网上下载就行:
4.启动这个虚拟机,然后上传程序文件,运行buildozer命令打包程序,比较漫长,需要在线下载安卓SDK,NDK等包,打包成功后,就可在当前bin目录下生成apk文件:
5.最后,发送apk到手机上,安装后的效果如下:
目前,就介绍这2种方法吧,其实还有pythonforandroid这种方法,只不过比较麻烦,可以参考一下这个文章qq_29027865/article/details/79191775,介绍的不错。不过,真不建议用python开发手机app,比较麻烦,安卓的话,用Java或Kotlin,苹果的话,用Objective-C或Swift,能更好一些,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。