首頁>Club>
2
回覆列表
  • 1 # 學霸IT

    python的主要運用領域有運維、爬蟲、科學計算、快速驗證和web。

    不過如果想用Python做手機app可以去了解一下QPython。

    《QPython》是一個指令碼引擎,他整合了Python直譯器、Console、編輯器和SL4A庫。可以讓你在Android裝置上執行Python語言開發的程式。它就是Android上的Python!此外,它提供了開發工具能讓你在Android裝置上方便地開發Python專案。

  • 2 # 萬事於心不表於情

    可以,太可以了。基本上可以說python就是為做手機軟體發來的,web都可以做,而且web框架號稱python的靈魂,有人把python框架比作你的腿,出門就得帶著,說明它的重要性和應用範圍。

    有什麼不知道的可以問我

  • 3 # 墩子村

    目前沒很好的python手機開發框架,有也是實驗性的,倒是javascript可以,那種是沙盒性質的,但從長期來看,Javascript+HTML統一移動終端是一個必然的趨勢,當然,前提是蘋果公司願意對這類非原生性的應用大力放行。

  • 4 # 八手程式猿

    可以的,不過要透過第三方類庫實現,比如kivy。

    kivy 語言透過編寫介面 UI,然後利用 Python 定義一些業務邏輯,可以移植很多功能模組到移動端直接執行。

    下面對 kivy 常見用法做一個彙總。

    1、什麼是 kivy?

    kivy 是一個開源跨平臺的 Python UI 框架,就可以快速開發 PC、移動端的 GUI 。

    kivy 基於 Python,採用 Python 和 CPython,介面程式碼和業務邏輯程式碼相互分離。

    2、Hello World 怎麼寫?

    在 pycharm 中編寫 kivy 程式碼塊前,需要在虛擬環境內安裝 kivy 依賴庫。

    pip3 install kivy

    然後,定義一個 kivy.app.py App 類的子類,重寫 build 方法。

    from kivy.app import App

    class MyApp(App):

    def build(self):

    """

    實現父類的build()方法

    :return:

    """

    pass

    接著新建一個控制元件例項,作為應用的根控制元件返回。

    from kivy.uix.label import Label

    def build(self):

    """

    把build()方法實現為返回一個控制元件例項(這個控制元件的例項也就是你整個應用的根控制元件)

    :return:

    """

    # 在這個方法裡面使用了Label控制元件

    return Label(text="Hello World!")

    # 執行 Hello World

    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) 意的是,利用 adb shell am 命令開啟應用的方式適用於部分不相容自動化框架的 App。

    5、中文亂碼問題

    預設佈局屬性中包含中文會顯示亂碼。

    針對 PC 端,只需要把中文字型檔案放到同級目錄下,利用 font_name 屬性指定字型即可顯示正常。

    如果是 App 端,需要利用 adb 命令,進入到 /system/fonts/ 下,尋找能顯示中文的字型,然後利用 font_name 屬性指定對應的字型,就能顯示正常。

    # 手機端 Miui-Bold.ttf 字型能顯示中文正常

    font_name:"/system/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:"/system/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:"/system/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:"/system/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:"/system/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:"/system/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

    """)

    def login(self, username, pwd):

    if not username or not pwd:

    print("使用者名稱和密碼不能為空!")

    popup = Popup(title="Warning", content=Label(text="使用者名稱和密碼不能為空",font_name="/system/fonts/Miui-Bold.ttf"),

    size_hint=(None, None),size=(600, 500),auto_dismiss=True)

    popup.open()

    else:

    resp = requests.get("https://www.baidu.com")

    # 登入成功

    if resp.status_code == 200:

    result = "Login Success!"

    else:

    result = "Login Failed!"

    self.tv_result.text = result

    最後,將檔案 push 到手機的 /sdcard/kv 目錄下,重新執行 airport 就能展示一個登入頁面。

    更多複雜的功能可以參觀官方 API。

    https://kivy.org/#home

  • 5 # MaWenjing

    python是可以開發app的,例如我們可以使用kivy開發安卓APP,Kivy是一套專門用於跨平臺快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支援,不僅能讓開發者快速完成簡潔的互動原型設計,還支援程式碼重用和部署,絕對是一款頗讓人驚豔的NUI框架。

    Kivy的主要架構由Kivy組織開發,並有Python用於Android,Kivy iOS和其它許多函式庫被使用在所有平臺。在2012年,Kivy從Python軟體基金會獲得$5000美元補助,用於移植Kivy到Python 3.3。Kivy也支援由Bountysource贊助的樹莓派。

  • 6 # IT小獅子l

    “python可以做app,Python是一種計算機程式設計語言。是一種面向物件的動態型別語言,最初被設計用於編寫自動化指令碼(shell),隨著版本的不斷更新和語言新功能的新增,越來越多被用於獨立的、大型專案的開發。”

  • 7 # 艾卡西亞

    當然可以了,不過有一點,前端程式碼最好依舊是安卓自己的方式來寫。

    而Python可以作為後端,你可以用你喜歡的任何架構,比如Django,比如flask等等,當做後端,提供api就可以了。

    當然你要完全用Python做也可以,不過並不建議你這樣做。

    用api的方式,可以實現前後端分離,這有什麼好處呢?不管是PC,安卓,網頁,iOS,任何客戶端,我不需要再繼續開發多個後臺,只需要繼續用api,另外寫套前端頁面就可以了。

  • 8 # 小小猿愛嘻嘻

    這個真不建議,非常不方便,如果你真想這麼做,有2種方法,一種是QPython,一種是Kivy,下面我簡單介紹一下這2種方式:

    QPython

    這個是手機上編寫執行Python的一個軟體,集成了Python直譯器、QEdit編輯器,可以開發簡單的安卓程式,下面我簡單介紹一下這個軟體:

    2.安裝成功後,我們看一下官方自帶的示例,一個簡單的安卓程式,列印輸入的內容,主要用到androidhelper這個包,如下:

    程式執行效果如下,一個簡單的安卓程式,比較樸素:

    Kivy

    這個是一個跨平臺的應用開發框架,可以快速建立應用程式,只需編寫一套程式碼,即可執行在目前主流的桌面和移動平臺上,像Windows,Linux,OS X,Android,iOS等,下面我簡單介紹一下框架的安裝和使用:

    1.安裝kivy,這直接參考官網的教程就行,如下,很快就能安裝成功:

    2.安裝成功後,我們可以編寫一個簡單的測試程式,測試一下kivy框架是否安裝成功,如下,很簡單:

    程式執行效果如下:

    3.接著就是打包這程式為手機app,這裡需要先下載官方自帶的kivy虛擬機器,藉助這個虛擬機器將kivy程式打包成手機app,如下,這個直接在官網上下載就行:

    4.啟動這個虛擬機器,然後上傳程式檔案,執行buildozer命令打包程式,比較漫長,需要線上下載安卓SDK,NDK等包,打包成功後,就可在當前bin目錄下生成apk檔案:

    5.最後,傳送apk到手機上,安裝後的效果如下:

    目前,就介紹這2種方法吧,其實還有python for android這種方法,只不過比較麻煩,可以參考一下這個文章https://blog.csdn.net/qq_29027865/article/details/79191775,介紹的不錯。不過,真不建議用python開發手機app,比較麻煩,安卓的話,用Java或Kotlin,蘋果的話,用Objective-C或Swift,能更好一些,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

  • 9 # 傳智播客

    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的學習線路圖,其實更多的瞭解之後才會做出更好的專案:

  • 10 # 風華城主

    可以考慮web app,就是用python寫網頁,然後藉助工具打包成Android或iOS的安裝包。

  • 中秋節和大豐收的關聯?
  • 《封神演義》中,通天教主乃一教之尊,為何總是高估自己的法寶?