Step 1: Inspect elements to get the main color of theme. Example: #62bbde
Step 2: Using there compound of following CSS classess:
border border-gray-300/80
rounded-lg w-full
py-2 px-2 text-[16px]
outline-none
transition-all duration-200
| from redis.lock import Lock | |
| def process_job(): | |
| print('worked...') | |
| lock_key = f"lock_save:1234" | |
| lock = Lock(redis_client, lock_key, timeout=3600) | |
| if lock.acquire(blocking=False): | |
| try: |
Step 1: Inspect elements to get the main color of theme. Example: #62bbde
Step 2: Using there compound of following CSS classess:
border border-gray-300/80
rounded-lg w-full
py-2 px-2 text-[16px]
outline-none
transition-all duration-200
| CREATE TEXT SEARCH DICTIONARY public.vietnamese ( | |
| TEMPLATE = pg_catalog.simple, | |
| STOPWORDS = vietnamese | |
| ); | |
| CREATE TEXT SEARCH CONFIGURATION public.vietnamese ( | |
| COPY = pg_catalog.english | |
| ); | |
| ALTER TEXT SEARCH CONFIGURATION public.vietnamese |
| # remove all tables start with "django_" | |
| DO $$ DECLARE | |
| r RECORD; | |
| BEGIN | |
| FOR r IN (SELECT tablename FROM pg_tables WHERE tablename like 'django_%') LOOP | |
| EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; | |
| END LOOP; | |
| END $$; |
| import Router from 'next/router' | |
| import * as NProgress from 'nprogress' | |
| import * as React from 'react' | |
| import { css, Global } from '@emotion/react' | |
| export default function NextProgressbar ({ | |
| color = '#29D', | |
| startPosition = 0.3, | |
| stopDelayMs = 200, | |
| height = 3, |
| # === CẤU HÌNH MẪU NGINX DÀNH CHO 1 WEBSITE VIẾT BẰNG DJANGO === | |
| # Ở đây chúng ta sẽ cài đặt cho 3 domain: mysite.com | static.mysite.com | media.mysite.com | |
| # Ngoài ra, nguyên tắc của tôi là mỗi 1 website sẽ có 1 linux user riêng với những quyền riêng tránh can thiệp vào các user khác. | |
| # INSTRUCTION | |
| # 1. Thay thế `mysite` với tên của domain website; | |
| # 2. Điều chỉnh port 9999 thành port mà bạn sử dụng tại máy chủ WSGI hoặc ASGI. | |
| # 3. Điều chỉnh MEDIA_ROOT và STATIC_ROOT lại cho phù hợp với cấu hình của nginx ở đây. | |
| upstream mysite_django { |
| mysqldump -u root -p my_blog_prod > db_backup.sql | |
| mysql -u my_blog_user -p my_blog_prod < db_backup.sql |
| const removeAccents = (function () { | |
| const letters1 = 'ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹý' | |
| const letters2 = 'AAAAEEEIIOOOOUUADIUOaaaaeeeiioooouuadiuoUAAAAAAAAAAAAAEEEEEEuaaaaaaaaaaaaaeeeeeeeEEIIOOOOOOOOOOOOUUUUeeiioooooooooooouuuuUUUYYYYYuuuyyyyy' | |
| const patternLetters = new RegExp('[' + letters1 + ']', 'g') | |
| const lookupLetters = {} | |
| letters1.split('').forEach(function (letter, i) { | |
| lookupLetters[letter] = letters2[i] | |
| }) |
| import hashlib | |
| from filer.models import Image | |
| def check(file: Image, user=None): | |
| """ | |
| Check duplicate files in django-filer | |
| """ | |
| sha1 = hashlib.sha1() | |
| for chunk in file.chunks(): | |
| sha1.update(chunk) |