提问人:Beckett 提问时间:11/14/2023 最后编辑:Beckett 更新时间:11/14/2023 访问量:21
如何使用python kivy在数据库中存储信息
How to store information across a database with python kivy
问:
我正在尝试制作一个应用程序,目前正在登录页面/注册页面工作。但是我遇到了一个问题,我无法获取要保存到任何类型的数据库中的信息。我曾尝试将MySQL与其他类似的大型数据库一起使用,但这非常困难,似乎无法让它工作。我也尝试使用 kivy JsonStorage,但当我为手机制作 Apk 时它不会保存。如果有人知道我如何让其中之一发挥作用,我将不胜感激。
这是我的代码。
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
from kivy.uix.button import Button
from kivy.storage.jsonstore import JsonStore
from kivy.graphics import Rectangle
from kivy.lang import Builder
stored_data = JsonStore("user_info.json")
stored_data.store_load()
Builder.load_file('user_info.json')
class FloatInput(TextInput):`your text`
input_filter = 'float'
class LimitInput(FloatInput):
def on_text(self, instance, value):
if len(self.text) > 8:
self.text = self.text[0:8]
class login_screen_sign_up(FloatLayout):
def __init__(self, **kwargs):
super(login_screen_sign_up, self).__init__(**kwargs)
self.layout = FloatLayout()
"Input Username here :"
#username input section
self.login_prompt = Label(text=stored_data.get('Beckett')['password'], size_hint=(0.3, 0.1), pos_hint={'x': 0.1, 'y': 0.6})
self.add_widget(self.login_prompt)
self.login_info_un = TextInput(size_hint=(0.3, 0.1), pos_hint={'x': 0.1, 'y': 0.8})
self.add_widget(self.login_info_un)
#password input section
self.password_prompt = Label(text="Input Password here :", size_hint=(0.3, 0.1), pos_hint={'x': 0.6, 'y': 0.6})
self.add_widget(self.password_prompt)
self.login_info_pass = TextInput(size_hint=(0.3, 0.1), pos_hint={'x': 0.6, 'y': 0.8})
self.add_widget(self.login_info_pass)
#password confirm section
self.password_prompt_confirm = Label(text="Confirm Password here :", size_hint=(0.3, 0.1), pos_hint={'x': 0.1, 'y': 0.2})
self.add_widget(self.password_prompt_confirm)
self.login_info_pass_confirm = TextInput(size_hint=(0.3, 0.1), pos_hint={'x': 0.1, 'y': 0.4})
self.add_widget(self.login_info_pass_confirm)
self.button = Button(text="Sign Up", font_size=30,size_hint=(0.3, 0.1), pos_hint={'x': 0.6, 'y': 0.2})
self.button.bind(on_press = self.click_me)
self.add_widget(self.button)
def click_me(self, instance):
if len(self.login_info_un.text) > 0 and len(self.login_info_pass.text) > 0 and len(self.login_info_pass_confirm.text) > 0:
global username_taken
username_taken = False
for x in stored_data:
if x == self.login_info_un.text:
print('This username is already taken.')
username_taken = True
else:
username_taken = False
if username_taken == True:
pass
else:
if self.login_info_pass.text != self.login_info_pass_confirm.text:
print('Passwords do not match.')
else:
stored_data.put(self.login_info_un.text, password=str(self.login_info_pass.text))
stored_data.store_sync()
我一直在尝试这个,当我在线尝试时它可以工作,但是当我使用 buildozer 将其传输到我的手机时,json 存储没有保存,我的应用程序崩溃了。
答: 暂无答案
评论