Python3 Stuff
Python3 exception
https://docs.python.org/3/library/exceptions.html
Python Path MacOS
Pandas Module Stuffs
Pandas cheat sheat
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
Drop inplace all rows which column foo has value equals bar
df.drop(df[df['foo'] == 'bar'].index, inplace=True)
Drop inplace all rows which column foo has value in list [bar1, bar2, bar3]
df.drop(df[df['foo'].isin(['bar1', 'bar2', 'bar3'])].index, inplace=True)
Display all column
pd.options.display.max_columns = None
Display full text length
pd.options.display.max_colwidth = None
Get column with nan value
df.columns[df.isna().any()]
Get number of row with nan value
df.isnull().any(axis=1).sum()
Useful package
Web development
Django: Web framework for building web app
pip install Django
Gunicorn: Python WSGI Server
pip install gunicorn
Ưu điểm khi sử dụng Django Model
| Django Model |
Không sử dụng Django Model |
| Tạo Schema Models dễ dàng: Tạo các schema và models trực tiếp bằng Django. |
Tạo Database và Table bằng SQL: Phải tự viết các câu lệnh SQL để tạo cấu trúc database. |
| Tích hợp với admin page: Dễ dàng đăng ký models với admin page và sử dụng các form có sẵn. Không cần phải tự implement PUT, POST, DELETE. |
Phải tự định nghĩa URL và logic cho HTTP methods: Khai báo URL, implement xử lý logic cho PUT, POST, DELETE và tự viết các câu lệnh SQL tương ứng. |
| Tương thích với nhiều loại database: Django hỗ trợ nhiều backend database khác nhau, giúp việc chuyển đổi trở nên dễ dàng. |
Phải thay đổi toàn bộ câu lệnh SQL khi đổi database: Nếu muốn đổi database, phải chỉnh sửa tất cả các câu lệnh SQL đã viết. |
| Không cần viết câu lệnh SQL: Django tự động tạo các câu lệnh SQL dựa trên models. |
Cần tự viết câu lệnh SQL: Người lập trình phải tự viết và tối ưu các câu lệnh SQL. |
AI
Jupyter notebook
pip install notebook
Câu hỏi và Trả lời
Q: Làm thế nào để kiểm tra phiên bản Python?
python --version
A: Sử dụng lệnh trên để kiểm tra phiên bản Python của bạn.
Q: Làm thế nào để tạo virtual environment?
python -m venv myenv
A: Lệnh này tạo một virtual environment tên "myenv". Kích hoạt nó bằng:
source myenv/bin/activate # Trên macOS/Linux
myenv\Scripts\activate # Trên Windows
Q: Làm thế nào để cài đặt packages từ requirements.txt?
pip install -r requirements.txt
A: Lệnh này cài đặt tất cả packages được liệt kê trong file requirements.txt.
Q: Làm thế nào để liệt kê tất cả packages đã cài đặt?
pip list
A: Hiển thị tất cả packages đã cài đặt và phiên bản của chúng.
Q: Làm thế nào để lưu môi trường hiện tại vào requirements.txt?
pip freeze > requirements.txt
A: Tạo file requirements.txt với tất cả packages hiện đang được cài đặt.
Q: Yield keyword là gì trong Python?
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
counter = count_up_to(5)
print(next(counter)) # 1
print(next(counter)) # 2
A: Yield là một keyword trong Python được sử dụng để tạo generator. Thay vì return một giá trị và kết thúc hàm, yield tạm dừng hàm và trả về một giá trị, sau đó có thể tiếp tục từ điểm đó khi được gọi lại. Điều này giúp tiết kiệm bộ nhớ khi làm việc với dữ liệu lớn.
Ví dụ thực tế - Async Context Manager:
@asynccontextmanager
async def auto_run_in_start_and_end(app: PleaseSpeakApp):
logger.info(f"Start at {datetime.now()}")
await init_di()
await app.init_service()
yield
# shutdown
logger.info(f"System shutting down at {datetime.now()}")
try:
cache_service = di[CacheService]
await cache_service.close()
logger.info("Cache service closed successfully")
except Exception as e:
logger.error(f"Error closing cache service: {str(e)}")
Giải thích: Trong ví dụ này, yield được sử dụng trong async context manager để tách biệt phần setup (khởi tạo) và teardown (dọn dẹp). Code trước yield sẽ chạy khi vào context, code sau yield sẽ chạy khi thoát context. Điều này rất hữu ích cho việc quản lý tài nguyên như database connections, cache services, etc.
Ngày đăng: April 8, 2024

300 total views
Comment
anonymous: i was here
anonymous: hello