Cracker Jokes as a Service with Python
데이터베이스 기반이고, 웹에 있고, Python에 있습니다... 그리고 Javascript를 한 줄도 작성할 필요가 없었습니다. 예, 우리는 Anvil을 사용했습니다.
캔버스 컴포넌트
앤빌Canvas 구성 요소는 쉬운 마우스 이벤트와 함께 브라우저의 그리기 API에 대한 액세스를 제공하므로 이 앱을 빌드하는 데 완벽한 방법인 것 같습니다.
def draw_background(self):
img = URLMedia('_/theme/cracker.png')
c = self.canvas
m = self.margin
c.draw_image(img, m, 0, c.get_width() - 2*m, c.get_height())
def canvas_mouse_up(self, x, y, button, **event_args):
"""This method is called when a mouse button is pressed on this component"""
if (x < self.margin):
self.idx = (self.idx - 1) % len(self.jokes)
elif x > self.w - self.margin:
self.idx = (self.idx + 1) % len(self.jokes)
self.write_joke()
배터리 포함
AnvilPython in the browser은 Pythonbatteries included의 철학과 함께 좋아하는 Python 라이브러리에서 f-문자열에 이르기까지 제공됩니다.
import itertools
import textwrap
import random
class TellJokes(TellJokesTemplate):
def __init__(self, **properties):
self.init_components(**properties)
self.jokes = list(app_tables.crackers.search())
self.idx = 0
self.QorA = itertools.cycle('QA') # switch between Q and A
self.margin = 80
self.laughing = '🤣😂😹😆🙈'
self.text = 'Click To Start Telling Jokes 🎅'
def write_joke(self, text=None):
if text is None:
QorA = next(self.QorA)
text = f"{QorA}. {self.jokes[self.idx][QorA]}"
if QorA is 'A':
text += ' ' + random.choice(self.laughing) # add a random laugh emoji
# wrap lines for readability
wrapped_text = textwrap.wrap(text, int(self.canvas.get_width() - 2*self.margin)/35)))
...
웃음을 나누다
AnvilData Tables 서비스를 사용하여 데이터베이스를 만든 다음 DataGrid 구성 요소로 UI를 빌드했습니다. 이제 가족에게 앱을 보낼 수 있습니다. 그들이 나보다 더 나은 농담을 생각해 내길 바랍니다 🙄 .
소스 코드 보기
앱으로 직접 플레이하고 싶으신가요? 소스 코드를 확인하십시오.
오픈 소스 코드 >>
Reference
이 문제에 관하여(Cracker Jokes as a Service with Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/meredydd/cracker-jokes-as-a-service-with-python-2hna텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)