Помощь в учёбе, очень быстро...
Работаем вместе до победы

Разработка отдельных страниц сайта

РефератПомощь в написанииУзнать стоимостьмоей работы

Шаблон страницы, отображающей полный список продуктов, отображает данные из списка, переданного ему функцией таким же образом, как и шаблон главной страницы. Функция отличается от show_new тем, что получает список не последних пяти элементов, а все значения таблицы сортирует их по названию: Данные, введенные в эту форму, пересылаются в функцию, которая в зависимости от них регистрирует… Читать ещё >

Разработка отдельных страниц сайта (реферат, курсовая, диплом, контрольная)

Начнем реализовывать отдельные страницы сайта.

Реализация страниц в joomla происходит с помощью шаблонов. Вначале пишется шаблон html, в котором в определенных местах находятся теги шаблона и переменные. Затем в файле views. py пишется представление — функция, загружающая данный шаблон и подставляющая значения переменных. И наконец, в файле urls. py находится словарь, содержащий ссылки и функции, соответствующие ссылкам.

Сайт будет представлен несколькими окнами, или фреймами. Вначале следует определить структуру документа, разметить страницы и определить адреса страниц. Шаблон index. html содержит описание фреймов:

Файл представлений содержит функцию, отображающую шаблон.

def mainf (request):render_to_response ('index.html').

Эта функция не делает ничего, кроме разметки страницы на фреймы. Она вызывается по адресу.

После разметки можно загрузить рисунок. Для этого не нужен специальный шаблон, текст находится в самой функции:

def my_image (request):="" «.

" «» HttpResponse (html).

Теперь загрузим меню. Меню описывает шаблон menue. html, содержащий html текст и скрипт, позволяющий управлять загрузкой страниц в главной части окна.

html>

Главная.

Поиск.

Продукт.

  • игры
  • музыка
  • фильмы

Регистрация.

Сделать заказ.

Гостевая книга.

Функция, загружающая шаблон также ничего больше не делает.

Шаблон главной страницы содержит текст и тег, отображающий новые поступления товаров:

html lang="ru" >

Your New World.

" Digital trade" ;

Здесь ты сможешь найти любой гаджет для себя

Новые поступления

по заказам и просьбам, а также интересные для жителей «Digital Trade»
    {% for disc in queryset %}
  • Название:[1]

    Жанр:[2]

    Описание:[3]

    Лот:[4]

    Цена:[5]

  • {% endfor %}.

Тег {% for disc in queryset %} выводит в цикле значения списка queryset.

Функция, загружающая шаблон, находится в файле views. py, относящемуся к приложению, так как работает с базой данных:

def show_new (request):=Disc.objects.all ()=len (list1)=list1[(l-5):l]render_to_response («main.html», {" queryset": list2 }).

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

В результате, главная страница, меню и логотип выглядят следующим образом:

Разработка отдельных страниц сайта.

5. Следующей обработаем страницу поиска. В шаблоне будет содержаться форма ввода, а также отображение результата поиска либо сообщения об ошибке:

Поиск{% if query %} Результат{% endif %}.

Поиск

Введите название диска.

Поиск:

[6]" >

{% if query %}.

Результаты для «[6]» :

{% if results %}.

    {% for disc in results %}.

  • Название:[1]

    Жанр:[2]

    Описание:[3]

    Лот:[4]

    Цена:[5]

  • {% endfor %}.

{% else %}.

Диск не найден.

{% endif %}.

{% endif %}.

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

def search (request):

query = request.GET.get ('q', '')= (Q (name__icontains=query))= Disc.objects.filter (qset).distinct ()render_to_response («mydatabase/search.html», {.

" results": results,.

" query": query.

}).

В результате страница поиска выглядит следующим образом:

Разработка отдельных страниц сайта.

Шаблон страницы, отображающей полный список продуктов, отображает данные из списка, переданного ему функцией таким же образом, как и шаблон главной страницы. Функция отличается от show_new тем, что получает список не последних пяти элементов, а все значения таблицы сортирует их по названию:

def show_products (request):render_to_response («mydatabase/product.html», {.

" queryset": Disc.objects.all ().order_by («name»).

}).

В результате страница выглядит так:

Разработка отдельных страниц сайта.

Страницы вывода товаров по виду строятся аналогично и имеют схожий внешний вид.

Страница регистрации состоит из формы регистрации.

Регистрация.

Регистрация

Перед завершением регистрации убедитесь в правильности введенных вами данных!

Ник
Фамилия:
Имя:
Отчество:
Адрес:
Город:
Область:
Страна:

[13]

Данные, введенные в эту форму, пересылаются в функцию, которая в зависимости от них регистрирует пользователя (то есть создает запись о нем в базе данных) и сообщает ему об успешной регистрации или, если ник, предложенный пользователем, дублируется — выводит под формой предупреждение.

def register_us (request):request.method == 'POST':= request.POST.get ('N', '')(ShopUser.objects.filter (nickname=n)):

e="Этот ник уже используется в системе! Введите другой ник!" render_to_response ('register.html', {'err': e}):= request.POST.get ('N2', '')= request.POST.get ('N3', '')= request.POST.get ('N4', '')= request.POST.get ('N5', '')= request.POST.get ('N6', '')= request.POST.get ('N7', '')= request.POST.get ('N8', '')= ShopUser (nickname=n, surname=n2, name=n3, patr_name=n4, address=n5, city=n6, state_province=n7, country=n8).save ()HttpResponseRedirect ('/register/register1/'):render_to_response ('register.html') Внешний вид страницы до и после регистрации представлен на изображениях:

Разработка отдельных страниц сайта.
Разработка отдельных страниц сайта.

Страница заказа содержит правила заказа, рекомендации и форму заказа.

Функция принимает ник пользователя, его фамилию и лот диска. На каждом этапе осуществляется проверка на правильность введенных данных:

def order (request):request.method == 'POST':= request.POST.get ('N', '')=ShopUser.objects.filter (nickname=n)(q):=request.POST.get ('N2', '')(q[0]. surname==n2):= request.POST.get ('N1', '')=Disc.objects.filter (lot=n1)(q1):=datetime.date.today ()=Order (user=n, disc=n1, date=d, payd='no').save ()HttpResponseRedirect ('/order/order1/').

else:="Диска с таким номером лота не найдено!" .

return render_to_response ('order.html', {'err': e}).

else:="Неправильно введены фамилия или ник!" .

return render_to_response ('order.html', {'err': e}).

else:="Пользователь с таким ником не зарегистрирован!" .

return render_to_response ('order.html', {'err':

e}):render_to_response ('order.html').

Внешний вид страницы до и в результате заказа:

Разработка отдельных страниц сайта.
Разработка отдельных страниц сайта.

Гостевая книга.

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

Гостевая книга.

Гостевая книга

В нашей гостевой книге вы можете оставить пожелание, отзыв или интересующий вас вопрос.

Мы постараемся не оставить без внимания вашу запись.

Записи могут оставлять только зарегистрированные пользователи!

{% if queryset %}.

    {% for wish in queryset %}.

  • Пользователь:[14]

    Запись[15]

  • {% endfor %}.

{% endif %}.

Добавление записи

Ник
Текст

[13]

Если форма не заполнялась, то есть функцией не был получен POST, она отображает форму и записи.

После получения POSТ функция проверяет на правильность ник, обновляет страницу, пересчитывает последние элементы списка и выводит их вместе с новой записью.

def add_wish (request):=Wish.objects.all ()=len (list1)=list1[(l-5):l]request.method == 'POST':= request.POST.get ('N', '')= request.POST.get ('N2', '')=ShopUser.objects.filter (nickname=n)(q):= request.POST.get ('N1', '')=Wish (nickname=n, wishtext=n1).save ()=Wish.objects.all ()=len (list1)=list1[(l-5):l]render_to_response («mydatabase/wishes.html», {" queryset": list2}).

else:="Пользователь с таким ником не зарегистрирован!" .

return render_to_response («mydatabase/wishes.html», {'err': e}):render_to_response («mydatabase/wishes.html», {" queryset": list2}).

Показать весь текст
Заполнить форму текущей работой