Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Серый_Ветер
19 / 19 / 10
Регистрация: 09.01.2013
Сообщений: 443

Календарь на весь год в виде страницы http

23.05.2025, 23:16. Показов 1050. Ответов 0

Студворк — интернет-сервис помощи студентам
Доброго времени.

подскажите, как реализовать одну задачу.
имею календарь формата html реализованный на python 2.7 (знаю что старая версия, но нельзя выше.)


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from bottle import route, run, template, request, response, static_file, redirect
from time import mktime, strptime
from time import strftime, localtime
from datetime import timedelta
 
 
from conf import *
 
#signal.signal(signal.SIGCHLD, signal.SIG_IGN)
 
import sqlite3, datetime, webbrowser, calendar, locale, os, re, sys, json, subprocess
reload(sys)
sys.setdefaultencoding('utf8')
locale.setlocale(locale.LC_ALL,'en-US')
@route('/static/<path:path>')
def static(path):
    return static_file(path, root='static')
 
@route('/')
def calend():
    eng_to_ru_months = {'January': 'Январь', 'February': 'Февраль', 'March': 'Март', 'April': 'Апрель', 'May': 'Май', 'June': 'Июнь', 'July': 'Июль', 'August': 'Август', 'September': 'Сентябрь', 'October': 'Октябрь', 'November': 'Ноябрь', 'December': 'Декабрь'}
    def eng_to_ru_datetime(rudm):
        dm = rudm.split('-')
        eng_month  = eng_to_ru_months[dm[0]]
        return eng_month + ' ' + dm[1]
 
    dm = datetime.date.today().strftime("%B-%Y")
    sru = eng_to_ru_datetime(dm)
    sru = sru.decode("utf-8")
 
    cald = calendar.LocaleHTMLCalendar(0, "ru_RU.UTF-8")
    cald = cald.formatmonth(datetime.date.today().year,datetime.date.today().month)
 
    cald = cald.replace('<table border="0" cellpadding="0" cellspacing="0" class="month">','<div class="calendar-table">').replace('</table>','</div>')
    cald = re.sub('<th colspan="7" class="month">\W{3,9}.+</th>','', cald)
    cald = cald.replace('<tr>','<div class="table-row">').replace('</tr>','</div>')
    cald = re.sub('<th class="([a-z]+)">',r'<div class="table-cell \1 week"><div class="cell-wrapper"><div class="cell-content">', cald)
    cald = cald.replace('</th>','</div></div></div>')
    cald = re.sub('<td class="([a-z]+)">',r'<div class="table-cell \1"><div class="cell-wrapper"><div class="cell-content">', cald)
    cald = cald.replace('</td>','</div></div></div>')
    dtoday = datetime.date.today().strftime("%d")
    dtoday = dtoday.lstrip('0')
    cald = re.sub(r'<div class="table-cell ([a-z]+)"><div class="cell-wrapper"><div class="cell-content">'+dtoday+'</div>', r'<div class="table-cell \1 onday"><div class="cell-wrapper onday"><div class="cell-content">'+dtoday+'</div>', cald)
    cald = cald.replace('<div class="table-row"><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell sun"><div class="cell-wrapper"><div class="cell-content">1</div></div></div></div>', '<div class="table-row"><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell sat"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell sun"><div class="cell-wrapper"><div class="cell-content">1</div></div></div></div>')
    cald = cald.replace('<div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div></div>','<div class="table-cell sat"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div><div class="table-cell sun"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div></div>')
    cald = cald.replace('<div class="table-cell noday"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div></div>','<div class="table-cell sun"><div class="cell-wrapper"><div class="cell-content">&nbsp;</div></div></div></div>')
    cald = cald.replace('Пнд', 'Пн').replace('Втр', 'Вт').replace('Срд', 'Ср').replace('Чтв', 'Чт').replace('Птн', 'Пт').replace('Сбт', 'Сб').replace('Вск', 'Вс')
 
    return template('calendar', cald=cald, sru=sru)
к нему еще css есть, нужно ли выкладывать?

поступила задача от руководства, реализовать календарь на весь год.
чтобы кнопкой слева/справа можно было выбрать нужный месяц.

целиком весь год вывести получилось.
а как его выводить помесячно - пока не понял.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2025, 23:16
Ответы с готовыми решениями:

http клиент и http сервер на Python
Клиент должен уметь кидать запросы на сервер с адресом http://127.0.0.1:{port}/{method} , где port...

Напечатать таблицу соответствия между весом в фунтах и весом в килограммах
Помогите решить задачу. Напечатать таблицу соответствия между весом в фунтах и весом в...

Найти и записать в файл имена пассажиров, вес багажа которых превосходит средний вес багажа одного пассажира.
Составить программу, которая находит и записывает в файл g имена пассажиров, вес багажа которых...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2025, 23:16
Помогаю со студенческими работами здесь

Parser Http страницы
Здравствуйте, как распарсить http в html? Знаю что это возможно но не понимаю как. В инете находил...

Сохранение состояния фильтров после обновления страницы при HTTP REFERER
Всем привет! Вкратце опишу суть проблемы, пока без кода, чтобы понимать, можно ли вообще это как-то...

Делаю парсинг страницы, работаю с апи, и отдает не весь текст, почему так
Делаю парсинг страницы, работаю с апи, и отдает не весь текст, почему так? Заранее спасибо ...

При парсинге получается не весь код страницы
Обучаюсь парсингу и заметил такую странность что в странице которую я получаю отсутствует часть...

При наследовании шаблона страницы, при переходе на нее выводиться весь код в браузере
Есть шаблон на котором определена разметка страницы. Я подключаю этот шаблон к &quot;.html&quot; страницам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru