Бұл жерде біз жаратқан чаттың ең алғашқы қадамы болады.
Бізді «Онлайн чатқа қош келдіңіз!бұл чаттың бастапқы коды 100 жолға сәйкес келеді!» халарлама күтеді. Біз чатқа қосылар алдында өз есімізіді жазамыз. Егер біз кіріткен есім чатда болатын болса бізге «Мұндай есiм қазір қолданда бар!» хабарламасы шығады. Біз кіріткен есім егер жоқ болатын болса «{nickname}' чатқа қосылды!» хабарламасы шығады.
data = await input_group коды жаңа хабарлама жазу үшін орын, input арқылы хабарлама мәтіні жазылады, хабарлама жазылған соң buttons функциясы арқылы жіберу және чаттан шығу түймелері басылады.
2.2 Программа кұру және нәтижесін алу
from pywebio import start_server
from pywebio.input import *
from pywebio.output import *
from pywebio.session import run_async, run_js
import asyncio
chat_msga = []
online_users = set()
MAX_MESSAGES_COUNT = 100
async def main():
global chat_msga
put_markdown("## Онлайн чатқа қош келдіңіз!бұл чаттың бастапқы коды 100 жолға сәйкес келеді!")
msg_box = output()
put_scrollable(msg_box, height = 300, keep_botton = True)
nickname = await input("Чатқа кіру", required=True, validate=lambda n: "Мұндай есiм қазір қолданда бар!" if n in online_users or n == 'X' else None)
online_users.add(nickname)
chat_msga.append((f"'{nickname}' чатқа қосылды!"))
msg_box.append(put_markdown(f"'{nickname}' чатқа қосылды!"))
reflesh_task = run_async(reflesh_msg(nickname, msg_box))
while True:
data = await input_group("Жаңа хабарлама", [
input(placeholder="Хабарлама мәтіні", name="msg"),
actions(name="cmd", buttons=["жіберy",{'label':"Чаттан шығу", 'type':'cancel'}])
], validate=lambda n:('msg', "Хабарлама мәтінін енгізіңіз!") if n["cmd"] == "Жіберу" and not n["msg"] else None)
if data is None:
break
msg_box.append(put_markdown(f"'{nickname}' : {data['msg']}"))
chat_msga.append((nickname,data['msg']))
# exit chat
reflesh_task.close()
online_users.remove(nickname)
toast("чаттан кетті!")
msg_box.append(put_markdown(f" Пайдаланушы '{nickname}' чаттан кетті!"))
chat_msga.append(f" Пайдаланушы '{nickname}' чаттан кетті!")
async def reflesh_msg(nickname,msg_box):
global chat_msga
last_idx = len(chat_msga)
while True:
await asyncio.sleep(1)
for m in chat_msga[last_idx:]:
if m[0] != nickname:
msg_box.append(put_markdown(f"'{m[0]}':{m[1]}"))
# remove axpired
if len(chat_msga) > MAX_MESSAGES_COUNT:
chat_msga = chat_msga[len(chat_msga)//2:]
last_idx = len(chat_msga)
if __name__ == "__main__":
start_server(main, debug=True, port=8080, cdn=False)
Қорытынды
Мен Исмоилов Бекзод менің курстық жұмысымның тақырыбы Python-да университет студенттеріне арналған әлеуметтік желі: “Messenger” құрастыру.
Мен бұл жоба арқылы университет студенттеріне арналған жаңа әлеуметтік желі құрастырырамын. Бұл жобаның пайдасы бұл интернет желісі арқалы жұмыс істеп жаддан орын иелемейді. Қазіргі таңда кең таралған және пайдаланушылары көп таралған бағдарламалау тілі болып саналады. Ол үшін ең алдымен осы Python бағдарламалау тілін туралы кітапханалар, теориялар, мәліметтер жинақтап алдым, және оларды курстық жұмысыма қостым. Негізінен Python тілі ABS тіліне ұқсас болып келеді. Мысалы кодты бір рет ғана жазып қоюға болады және бағдарламаны өзгертпей, сақтап қою арқылы кейінірек кез келген компьютерге өткізіп іске қосуға болады.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
PYTHON-ДА БАҒДАРЛАМАЛАУДА БАҒДАРЛАМАЛАУ Сатмаганбетова Ж.З Галиханов С.Г
Django 2.1 Практика СОЗАаНИЯ веб-сайтов на Python Владимир Дронов
https://progler.ru/blog/3d-grafiki-konusa-s-ispolzovaniem-plotly-v-python
https://translated.turbopages.org/proxy_u/en-ru.ru.05a6c739-637520cc-37e3c460-74722d776562/https/www.geeksforgeeks.org/making-a-cone-with-vpython/
Do'stlaringiz bilan baham: |