Кроме того, что можно посмотреть чего там в n () заменив
n.forEach(e=>wpcf7.init(e))наn.forEach(e=>{ console.log(e, wpcf7.init); try { wpcf7.init(e); } catch(err) { console.log(err); }})
Нет
let x = {'1':2,t:'5'};x={largeToSmall:!1,withDesktop:!1,...x};console.log(x)/*{ "1": 2, "largeToSmall": false, "withDesktop": false, "t": "5"}*/
И даже тут😀. Это однозначно написано ранее кем то.
А в целом, для простых задач, может и велосипед неплохо поедет. Но, это не точно😀
console.log(...null!==1&&[2,3])//2 3console.log(...[1, 2, 3])//1 2 3
Меняется. Регионы точно. Обвес тоже, как минимум, после того как новость добавилась.
Например новый документ про "достопримечательности праги", а есть новости про
['град_пражский',
'площадь_староместский',
'карлов_мост',
'город_старый',
'святой_собор',
'вацлавская_площадь',
'тынский_храм',
'еврейский_квартал',
'дом_танцующий',
'башня_пороховой',
'место_стар',
'исторический_центр',
'маленький_страна',
'берег_левый',
'малый_страна',
'площадь_республика',
'место_нова',
'камп_остров',
'интересный_место',
'билет_входной',
'вар_карлов',
'место_стара',
'метро_станция',
'гора_кутна',
'метро_схема',
'отзыв_турист',
'виноград_район',
'проезд_схема',
'интересный_факт',
'петь_фонтан']
Роутер, само собой. Самый простейший:
from slugify import slugifyfrom argparse import ArgumentParserclass called_url: def sd_dfdf_dnf_asd(self, response): response['status'] = 200 response['content'] = 'sd_dfdf_dnf_asd result' def get_content(content, response): try: with open(content['content']) as f: response['content'] = f.read() response['status'] = 200 except: response['error'] = "Fail to open content src" response['status'] = 500 response['title'] = f"{content['title']} - {response['status']}" return response content_map = { 'paga_1':{'name':'xxx', 'title':'yyy', 'h1':'zzz', 'content': '/contents/paga_1.txt' }, 'paga_2':{'name':'2xxx', 'title':'2yyy', 'h1':'2zz', 'content': '/home/py39/amtl_app/supervisord/webpack.log' }, }def main(x): response = dict(status=404, original=x) response['slug'] = slugify(x, separator="_") if response['slug'] in dir(called_url): hangler = called_url() mod = getattr(hangler, response['slug']) mod(response) elif response['slug'] in content_map: response = get_content(content_map[response['slug']], response) else: response['error'] = 'Not found' print(response) if __name__ == '__main__': parser = ArgumentParser(description="Simple router") parser.add_argument('--url', default="nonon") args = parser.parse_args() main(args.url)exit()
Шаблонизатор, наверное или самый простой спринтф, или вообще не нужен
Пример неудачный😔 Или, скорее, неудачно раскрыт. Региональность и все, что с этим связано. От СЕО, до аналитики какой то. Хотя, сознаю, бд в данном случае будет своеобразная, оправдаюсь тем, что Редис имеет какие то признаки бд.
Но, главным образом, наверное, обвес контента. Который, вместе с контентом, даст наиболее полный ответ по нужному ключу. Соответственно, надо что бы все это безобразие поисковиками гарантированно индексировалось. А тут, уже полноценная БД, скорее всего фулл-текст индекс придется использовать.
Да и по скорострельности, не факт, что запрос + xhr + еще запрос с коннектом к бд (а может не 1), будет лучше чем 1 запрос с коннектом к бд.
пых 1-й, го - 2-й. Речь о том, что немного строк и вот готовая кмс. Хранение данных
Это js на клиенте, он может быть любой. Шаблон
Не однозначно. Особенно, если сессии, динамика, поиск.. Я не к тому, что в файлы, это плохо (логи - они в файл😀). Просто, сайты теперь нужны сложнее.
kxk :Добрый день!
А смысл?
file_get_contents, file, err := os.Open("file.txt") , with open(fn, 'rb') as f:
решают все задачи.