
ใบสมัครเตือนวันเกิด
โปรแกรมตรวจสอบว่าบุคคลมีวันเกิดในหนึ่งสัปดาห์หรือไม่และเลือกส่งการแจ้งเตือนไปยังส่วนที่เหลือของกลุ่ม มันเกี่ยวข้องกับฟังก์ชันที่จำเป็นสำหรับการตรวจสอบอินพุตและการส่งอีเมล ที่เก็บนี้มี 2 โมดูล ที่ bdayReminder.py เกี่ยวข้องกับฟังก์ชันเหล่านี้ในขณะที่การทดสอบการทดสอบแพ็คเกจ โปรดดูข้อกำหนดสำหรับการนำเข้าไลบรารีแพ็คเกจและโมดูลเสริมก่อนที่จะดูการใช้แอพหรือฟังก์ชั่นการทดสอบงาน cron และสาขาอื่น ๆ
Python 3.9.12 จำเป็นต้องใช้โมดูลของแพ็คเกจอย่างถูกต้องไลบรารีที่นำเข้าและฟังก์ชั่นที่กำหนดไว้ การนำเข้าห้องสมุดหลายแห่งเช่น Dotnet, pytest เพื่อชื่อไม่กี่ก็จำเป็นเช่นกัน พบเวอร์ชันที่จำเป็นบางรุ่นที่นี่ในขณะที่รุ่นที่ไม่ได้กล่าวถึงมาพร้อมกับรุ่น Python ที่ใช้แล้ว ตรวจสอบตัวแปรสภาพแวดล้อมและการรับรองความถูกต้องก่อนดำเนินการต่อไป สำหรับการใช้งานโปรแกรมที่เหมาะสมคุณอาจต้องใช้ Python3 แทนที่จะเป็น Python ที่เสนอดังที่แสดงในการใช้งาน 1
1 Python หรือ Python3 ขึ้นอยู่กับวิธีการติดตั้ง Python บนเครื่องของคุณ
เพื่อให้สามารถส่งอีเมลคุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม หากต้องการทำสิ่งนี้ในเครื่องโปรดสร้างไฟล์ .env และเพิ่มตัวแปร env สองตัวลงในนั้นด้วยค่าที่ถูกต้องเช่นนี้: 1
USR=<youremail>
PSW=<yourpassword> or <token>
1 หากคุณจะส่งจาก Gmail จากนั้นเพื่อตั้งค่ารหัสผ่านตัวแปรสภาพแวดล้อมที่เหมาะสมคุณจะต้องสร้างโทเค็น ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ภายใต้ส่วนการตรวจสอบ
เพื่อให้สามารถส่งอีเมลหลังจากตั้งค่าอีเมล Gmail ที่ตัวแปรสภาพแวดล้อมคุณจะต้องสร้างโทเค็น รายละเอียดเกี่ยวกับวิธีการทำสามารถพบได้ที่นี่
หลังจากตรงตามข้อกำหนดแล้วแพ็คเกจแอพจะถูกตั้งค่าที่ไดเรกทอรีและเทอร์มินัลของคุณคุณมีสี่ตัวเลือก 1,2,3 :
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
'''
'''
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
>>> python bdayreminder.py <data_file_path> 3
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 3
Please choose either 1 or 2
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
1 <data_file_path> ควรมีลักษณะเช่นนี้ - ชุดข้อมูล/data_20.csv แต่ในไดเรกทอรีของคุณ เส้นทางเต็มสำหรับฉันคือ /users/aurimasnausedas/documents/python/birthdayreminderapp/datasets/data_20.csv
2 โมดูลหลักใช้สองอาร์กิวเมนต์เมื่อเรียกใช้จากคอนโซล
3 ข้อมูลที่ใช้สำหรับตัวอย่างคือ data_20.csv เมื่อ วันที่ 23 มิถุนายน 2565
ภาพรวมของฟังก์ชั่นที่พบภายในโมดูล - bdayReminder.py :
ในคำอธิบายเชิงลึกของฟังก์ชั่นสามารถพบได้ภายในโมดูล - bdayReminder.py
มีชุดข้อมูลที่เป็นไปได้สามชุดที่จะใช้ เหล่านี้คือ DATA_20 จาก 20 ผู้รับ DATA_50 จาก 50 ผู้รับและ DATA_80 จาก 80 ผู้รับ
ภาพรวมของฟังก์ชั่นที่พบภายในโมดูล - tests.py:
โดยการนำทางไปยังโฟลเดอร์โปรแกรม/แอพที่สกัด - BirthdayReminderApp - หนึ่งโฟลเดอร์ก่อนที่การทดสอบจะถูกจัดขึ้นและหนึ่งสามารถเรียกใช้คำสั่งทดสอบเหล่านี้:
>>> pyflakes .
>>> pyflakes Tests/tests.py
>>> python -m pytest Tests/tests.py
อาจเกิดข้อผิดพลาดเล็กน้อยเช่น:
>>> python bdayreminder.py Datasets/data_20.json 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 215, in run
raise Exception('ERROR: Wrong data format file')
Exception: ERROR: Wrong data format file
>>> python bdayreminder.py Datasets/data_13.csv 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 199, in run
raise Exception('ERROR: File doesn't exist')
Exception: ERROR: File doesn't exist
>>> python bdayreminder.py Datasets/data_20.csv versada
Argument passed not an integer
ยังมีสิ่งเหล่านี้มากที่สุด
เพื่อสร้างงาน cron ใน Mac Terminal Run:
>>> crontab -e
ไวยากรณ์สำหรับ Cronjob เมื่อเข้าสู่เทอร์มินัลอาจมีลักษณะเช่นนี้: 1,2,3
>>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2
[Optional] >>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2 >> Public/birthdays.txt
1 <directory_to_app> - ควรเป็นไดเรกทอรีที่โฟลเดอร์วันเกิด reminderapp เป็นเหมือน/ผู้ใช้/aurimasnausedas/เอกสาร/python/วันเกิด reminderapp
2 <directory_to_python> ควรเป็นที่ที่คุณติดตั้ง python บนเครื่องของคุณเช่น/ผู้ใช้/aurimasnausedas/opt/miniconda3/envs/symmetric/bin/python
3 <data_file_path> ควรเป็นชุดข้อมูลในไดเรกทอรีของแอพเช่นใน/ผู้ใช้/aurimasnausedas/documents/python/วันเกิด reminderApp โดยการตั้งค่าเป็นชุดข้อมูล/data_20.csv
การปรับแต่งไวยากรณ์สำหรับงาน cron สามารถตรวจสอบได้ที่นี่
โฟลเดอร์สาธารณะมีสามไฟล์:
โลโก้ของแอปพลิเคชันเตือนวันเกิดสามารถพบได้ที่นี่
ใบอนุญาต MIT