LINUX.ORG.RU

Вопрос по реализации «динамического?» сайта

 , , , whatever


4

7

Слово «динамического?» написано именно так, потому что я не владею в нужной мере терминологией, и, вероятно по этой причине не моуг нагуглить ответ на свой вопрос.
Почему не владею? Потому что я математик по образованию, с программированием знаком только на уровне олимпиадных задачек, и универских лаб на паскале.

Решил податься в wev development (не раздел форуме, а сферу) для интересу, и делания денег.

Почитал значит оф доки, html.net про html5, css, JS, и как мне кажется недостаточно раздуплился. Ну, то есть, всё пока понятно, но это же статические сайты, тупо с набором htm файлов, так сказать, и ссылками друг на друга. Дальше пока я не дошел. Но на самом деле деле тема не об этом...

А тема вот о чем: Для того, что бы раздуплиться некоторые советуют запилить бложик, форумчик, или еще какую ерунду. Но это не интересно. Почему? Потому что гуголь на вопрос как запилить форум выдает туторилы, общий вид которых: Вот возьми кусок кода, он, значит, логинит юзеров, вот еще кусок куда, она отвечает за что-то еще, залипи это все вместе - вот ты написал форум.

Если, кстати, вы можете посоветовать какую-нибудь литератутру на тему как перейти от умения"статических сайтов, тупо с набором htm файлов, так сказать, и ссылками друг на друга", к нормальным, полнофункциональным, блогам тем-же, не используя уже написаные кем-то шаблоны, и всё такое.

Вот в чем мне хотелось бы разобраться, и для чего была создана тема. Хоть я и некомпетентен в вопросе так называемых динамических сайтов, я примерно могу себе представить как оно должно работать. А вот что не могу... Существует значит сайтец такой depositfiles, и еще один ssdepositfiles, или {какой-то символ}depositfiles, я уже и не пропомню, пусть будет ssdepositfles. Работает он следующим образом: У нас есть ссылка на файл http://depositfiles.com/downloadfile1, на которой нам значит предлагают скачать файл с медленной скоростью за бесплатно, и быстро за деньги. Мы дописываем ss (например) к ссылке и получаем http://ssdepositfiles.com/downloadfile1 где мы можем скачать файл быстро, но за бесплатно. Мне все равно каким образом получается ссылка на быстрое скачивание, используется ли там какой-то левый премиум аккаунт, или что еще. Интересует каким образом создается ссылка http://ssdepositfiles.com/downloadfile1, она же создается в момент запроса соответствующего url от сайта, и каким образом происходит обращение к сайту depositfiles.

Собственно похожая штука будет использоваться в моем проекте, на котором я планирую учиться.

Или еще пример, если вдруг пример в этим депоситфайлсом не совсем прозрачный. Я, например, хочу написать сайт, lolinux.org.ru, у которого есть главная страница, на которой написано «Здарова!», и больше ничего. Остальные страницы каким-то образом(пока магическим для меня) генерируются на лету по такму принципу. Есть у нас ссылка на новость про Нассбаума Лукас Нуссбаум переизбран на пост лидера проекта Debian, я беру и в адресной строке изменяю URL на http://www.lolinux.org.ru/news/debian/10391232 и у меня открывается страничка, на которой тупо списком в столбик перечислены ссылки, которые встречаются в первом сообщении + ссылка на профиль топикстартера. Всё.

Как это реализовать?



Последнее исправление: Io (всего исправлений: 2)

Смотреть в сторону PHP. Большенство «динамических» двежком именно на нем написанны.

Deleted
()
Ответ на: комментарий от Deleted

Спасибо конечно, но даже нет желания учить. Не нравится мне php. Знаю python на уровне олимпиадных задач, слышал что его можно использовать вместо php, но пока неясно каким образом. И тем более неясно каким образом его использовать для конкретно этой задачи. :)

Io
() автор топика
Ответ на: комментарий от parrto

Мимо.
Я специально все так раписал, что бы ЛОРовцы прониклись и помогли. Если бы я написал 2 последних абзаца, толку было бы меньше.
P.S. а Вам бы в /hc

Io
() автор топика

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

возьми кусок кода, он, значит, логинит юзеров, вот еще кусок куда, она отвечает за что-то еще, залипи это все вместе - вот ты написал форум.

Тут нужны основы, того же популярного в вебе MVC.

ritsufag ★★★★★
()
Ответ на: комментарий от PolarFox

Не то что бы конкертно python, я с ним просто хотя бы знаком, хоть и без понятия (пока) как его применить в вебе.

Io
() автор топика
Ответ на: комментарий от Apple-ch

Благодарю, я прочитаю этот гайд. Но поможет ли он мне с задачей, описанной в последнем параграфе?

Io
() автор топика
Ответ на: комментарий от ritsufag

Тут нужны основы, того же популярного в вебе MVC.

Спасибо, становится постепенно понятно куда искать.

Io
() автор топика

Интересует каким образом создается ссылка http://ssdepositfiles.com/downloadfile1, она же создается в момент запроса соответствующего url от сайта, и каким образом происходит обращение к сайту depositfiles.

А почему она должна создаваться именно при запросе к depositfiles? Тут ведь вся суть в ограничении скорости отдачи. Эти два домена могут обслуживаться одним и тем же сервером, и, более того, они могут обслуживаться одним и тем же веб-приложением. Приложение, которое обработает запрос, определяется настройками доменной зоны и веб-сервера. В самом приложении можно определить домен, по которому пришёл юзер, и, соответственно, выполнить то или иное действие.

В твоём же случае с сайтом lolinux нужно действовать иначе. В случае с PHP это бы делалось так: настраиваем веб-сервер, чтобы все запросы к сайту шли на один и тот же скрипт, который сам возьмёт входящий URL, преобразует его в URL на ЛОР, загрузит с ЛОРа соответствующую страничку, распарсит нужным образом и выдаст пользователю. Для других веб-технологий аналогично, но там уже, как правило, и так есть единая точка входа в приложение, нужно только настроить соответствующим образом роутинг на общий контроллер.

static_lab ★★★★★
()

Программирование в общих чертах знаешь?

В очень общих чертах:

Интересует каким образом создается ссылка http://ssdepositfiles.com/downloadfile1

В данном случае http://ssdepositfiles.com/ это что-то вроде подпрограммы. А что после слэша - её аргумент.

Есть у нас ссылка на новость про Нассбаума Лукас Нуссбаум переизбран на пост лидера проекта Debian, я беру и в адресной строке изменяю URL на http://www.lolinux.org.ru/news/debian/10391232

Аналогично.

В обоих случаях твоя динамическая страничка будет получать ссылку в виде параметра. Понятно,что дальше она обратится к настоящей страничке (хост-то известен) и распарсит её.

ziemin ★★
()
Ответ на: комментарий от beastie

Я никоим образом не оспариваю возможную крутость Go, Но в моем городе ИТ развито не настолько, чтоб требовались Go-программисты.
И этот «проект» прежде всего учебный проект. Или у Go есть чего особенного предложить для решения задачи, описанной в последнем параграфе?

Io
() автор топика
Ответ на: комментарий от Io

Как раз с последней и поможет, потому что для решения первой задачи достаточно тупо нгинкса.

Apple-ch ★★
()
Ответ на: комментарий от static_lab

Потому что depositfiles это файловый хостинг с платной скачкой, а ssdepositfiles, это чей-то левый сайт, для того что бы качать бесплатно. Ну, как сайты, позволяющие качать с youtube, при дописывании разных букв, перед URL, несколько их.

Каким образом настроить так веб-сервер? Не стоит писать целый гайд, просто информацию куда гуглить.
Это все реализуемо на Python / Ruby или нужен PHP?

Io
() автор топика

Используй clojure, go или javascript. Всё остальное устарело и уже почти не пользуется спросом.

anonymous
()
Ответ на: комментарий от Io

Это все реализуемо на Python / Ruby или нужен PHP?

Я же написал, что реализуемо, и в их фреймворках нужно настроить соответствующим образом роутинг.

И вообще, для начала стоило бы вникнуть в азы веб-программирования, разобраться в протоколе HTTP, принципах работы веб-сервера, от них никуда ни на какой платформе и фреймворке не денешься.

static_lab ★★★★★
()
Ответ на: комментарий от ziemin

У нас на специальности такое программирование было, что... Но лабы делал, причем не только свои. :) И олимпиадным в школе увлекался.
А c вебом как-то странно получается. Первым делом я нагуглил html.net, разобрал туториалы по html5, css, js, пропустил php, планируя заменить его на python (или ruby). По python'у для веба ничего дополнительно не читал, планируя разбираться со всех по ходу дела. Придумал себе проблему, которую нужно решить, и застрял. Как писать статические сайты (под статическими тут я понимаю, что у меня в папке просто несколько html файлов, ссылающиъся друг на друга. Если я хочу на какую-то страницу добавить текст статьи, то я в этом же html файле руками дописываю этот текст) туторилы с html.net меня научили, предполагалось, что научат делать динамические используя php (Видимо, вместо писания статьи в html файл руками, вставляем код в теги php и он берет статью из отдельного файла, или из базы данных). Но это не совсем то, что мне нужно.

Как это понимать, динамическая страничка будет получать ссылку в виде параметра?
Попробую опереться, на то, что мне известно. Если, например, статический сайт, есть домен anotherdomain.org и два html файла home и about в каждом из них нет ничего, кроме ссылок друг на друга. Всё, это все что дано. Пользователь вводит URL anotherdomain.org/home - переходит на страницу home, вводит anotherdomain.org/about - на страницу about, anotherdomain.org/blalalal и получает ошибку, нет такой страницы. Я тут подумал... То есть если пользователь введет anotherdomain.org, то он тоже получит ошибку. Ведь он не обратится ни к какому html файлу. То есть получается у меня вообще полные пробелы в занияих и anotherdomain.org/{path} это не просто путь к html файлам, получается есть ещё что-то, что обрабатывает введеный пользователем url?

Это первая проблема - назовем ее динамические url.
Вторая. Если php код мы вставяляем прямо в html файл, и если мы внутри какого-то блока написали echo «something»,то при обработке браузером это превратится просто в текст «something», если при этом мы выводим значение строковой переменной, которое берется из базы - это страница стразу становится динамической, а как насчет python'a (ruby)? есть какой-то способ вставлять питоний код в html, или наоборот html в .py файл? Наверняка есть же средства для работы с этим.

Это вторая проблема - назовем ее динамические страницы.

Io
() автор топика
Ответ на: комментарий от static_lab

Возможно, спасибо. :)
Просто все «web development getting started»-like советы начинаются с «learn HTML5, then CSS, JS» и заканчиваются в лучшем случае «start coding», и в худшем «Check out our next tutorial on How-To crate „whatever“ using Wordpress».
Что нужно делать, что бы разобраться в протоколе HTTP, принципах работы веб сервера, и всего прочего без чего никуда не деться?

Io
() автор топика
Ответ на: комментарий от Io

есть какой-то способ вставлять питоний код в html, или наоборот html в .py файл?

Вот тебе html внутри баша. Надеюсь принцип понятен?

#!/bin/bash
echo "<html>"
echo "<body>"
echo "<h1>"
echo "Тест"
echo "</h1>"
echo "</body>"
echo "</html>"

https://ru.wikipedia.org/wiki/CGI

ziemin ★★
()
Ответ на: комментарий от ziemin

Ссылка очень многое обьяснила, благодарю

Получается, что мне нужен скрипт, который делает что-то вроде:

if (пользователь вввел lolinux.org.ru/ или lolinux.org.ru/home.html):
    показать ему страницу home.html
else:
    перейти на linux.org.ru/(что там ввел пользователь) и посмотреть  что там по этому адресу
    распарсить страницу, найти ссылки
    показать ему заготовку template.html, внутрь которой вывести как то на лету вставить список ссылок ссылки как-то на лету присвоить url lolinux.org.ru/(что там ввел пользователь) и показать ее пользователю
Я правильно понял?

Io
() автор топика
Ответ на: комментарий от ziemin

Извиняюсь за ошибки в русском языке в блоке [code], но суть того, что я хотел написать, думаю понятна. :)

Io
() автор топика
Ответ на: комментарий от Io

Да, кроме концовки. В конце надо просто сформировать в выходной поток страницу. Ничего присваивать не надо.

Вот ещё ссылка: https://stackoverflow.com/questions/6095932/routing-urls-in-php

Хоть там вопрос про php, но ответ для любого обработчика.

Странички-исключения

lolinux.org.ru/ или lolinux.org.ru/home.html

можно тоже замутить правилами апача.

ziemin ★★
()

зря отказываетесь от php. Мне он тоже не нравится, но что делать?

Собственно похожая штука будет использоваться в моем проекте, на котором я планирую учиться.

только не вздумайте учебный проект пихать в продакшн.

Интересует каким образом создается ссылка http://ssdepositfiles.com/downloadfile1, она же создается в момент запроса соответствующего url от сайта, и каким образом происходит обращение к сайту depositfiles.

чувак купил премиум аккаунт. Сервер ssdepositfiles является клиентом для depositfiles, и он, таким образом, является посредником, передавая трафик через себя. Реализация достаточно простая, как дерево, надо только понимать что и как происходит. Советую начать с чего-то более простого.

я беру и в адресной строке изменяю URL на http://www.lolinux.org.ru/news/debian/10391232 и у меня открывается страничка, на которой тупо списком в столбик перечислены ссылки, которые встречаются в первом сообщении + ссылка на профиль топикстартера

тебя познакомить с функциями/программами, забирающими контент по адресу? или как поместить всё это в массив? а потом познакомить с функциями, работающими с этим массивом по твоему усмотрению?

Просто начни. Питон так питон, мне что что? CGI гугли, там на чём угодно писать можно.

reprimand ★★★★★
()

Решил податься в wev development для интересу, и делания денег.

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

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

Я и не думаю. Просто в моей ситуации это похоже единственный способ делать деньги вообще. Да и это не самая главная цель, мне ж интересно. :D

Io
() автор топика
Ответ на: комментарий от Io

это похоже единственный способ делать деньги
это не самая главная цель

взаимоисключающие параграфы, либо вы состоите у кого-то на обеспечении

но с CGI так или иначе придется познакомиться.

reprimand ★★★★★
()
Ответ на: комментарий от Io

При использовании чего-либо отличного от PHP возникнут проблемы с размещением сайта, придётся брать VPS-ку или подымать на собственном серваке.

MiniRoboDancer ★☆
()
Ответ на: комментарий от MiniRoboDancer

возникнут проблемы с размещением сайта, придётся брать VPS-ку

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

xtraeft ★★☆☆
()

На пехепе (голом) пишут настоящие мужыки, с лёгкостью разбирающиеся в огромных массивах неструктурированного коду вперемешку с html-вёрсткой (такие же суровые ребята админят видовс и пасут кошек в прериях Аризоны). Если вы не чувствуете в себе внутреннего стержня, выберите себе то, что человеческая мысль уготовала для скромных бета-самцов: Django, flask, RoR или какой-нибудь хороший MVC-фреймворк для пехепе (норот хвалит symphony).

heilkitty ★★
()
Ответ на: комментарий от xtraeft

Ну и хорошо, что не модно. Так, глядишь, со временем перейдёт в разряд развлечений для Настоящих Мужыков: типа прыжков с парашютом или майданов. А разработка будет вестись на менее мозголомном инструментарии, нежели голый пхп. We can do it!

heilkitty ★★
()

Интересует каким образом создается ссылка http://ssdepositfiles.com/downloadfile1, она же создается в момент запроса соответствующего url от сайта, и каким образом происходит обращение к сайту depositfiles.


Да это домен же, у которого парсер на входе. он парсит страницу и находит урл с *fileshare* (все файлы депозита лежат на fileshare.depositfiles.com). не хочешь пыху - бери питон. он пыха, имхо, лучше для веба.

NeverLoved ★★★★★
()
Ответ на: комментарий от xtraeft

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

Я же не хвастаюсь/брезгую, а просто информирую.
Не сделай я этого, все ответы выгляделе бы примерно как 2-ой пост в теме, а так я уже узнал про CGI :)

Io
() автор топика

Тебе бы для начала разобраться как работает веб.

Если очень условно, то можно поделить его на две части. Бекенд и фронтенд. Бекенд ( база данных, веб-сервер и код на языке программирования ) занимается тем, что генерирует страничку и отдаёт её браузеру.

Фронтенд ( трое пацанов - html, css и js + батька-браузер ) занимается тем, что получает сгенерированную бекендом страничку и отображает ее.

trofk ★★★
()

гугл тебе в помощь товарищ, не отнимай время бредом

DILIN ★★★★★
()
Ответ на: комментарий от Io

Я же не хвастаюсь/брезгую, а просто информирую.

Язык для реализации своих идей стоит выбирать уже после того, как ознакомишься с тем как работает веб.
Ну, по крайней мере если у тебя нет существующего большого опыта работы с питоном.

xtraeft ★★☆☆
()

вот тебе все советуют тут начинать с джанги рор и прочего, совет не особо дельный, если не понимать толком что там под копотом, бложек вы делать не хотите, а хотите начать с чего-то более сложного.

вначале стоило бы посмотреть как работает HTTP и веб серверы, что такое request/response, понять что веб сам по себе не хранит состояние, понять какая роль отведена яваскрипту в вебе и что динамику в веб приносят по большей части базы данных и иные хранилища (про иные пока забудьте), что такое куки.

все это будет солидным фундментом, потом берете php/python/ruby с них начать будет легче т.к. много знаний накоплено и для веба они подходят идеально, изучаете язык процентов на 50%, потом сидите читаете доки по самому мажорному фреймворку для этого языка (тут стоит начать понимать зачем нужны фреймворки, почитать про это)

в случае с PHP это Laravel, Symfony, Zend, Yii (выбирите один)
Ruby это rails или sinatra
Python Django или Flask

ну и дальше пилите свой проект уже, когда все это будет в «нужном» состоянии

umren ★★★★★
()

Для начала почитай про CGI и попробуй на нём что-то написать. Это простой и тупой способ общения по HTTP, и он даст тебе общее понимание происходящего.
Альтернативный вариант - забить на CGI, забить на понимание, забить даже на HTTP, и сразу херачить на рельсах, джанге, зенде. А то и вебсфере, чо уж мелочиться.

Xellos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.