команды windows конзоли нужные для создания приложения
django-admin.py startproject [название проекта] | создание проекта |
manage.py runserver [номер порта] | запуск встроенного сервера |
manage.py syncdb | синхронизация моделей и БД |
manage.py startapp [название проекта] | создание модуля |
файлы настроек
settings.py | почти все основные настройки |
urls.py | роутер настройки |
django.wsgi | для связи приложения с Apache |
1.Создание проекта
cd C:\xampp\htdocs\myapps # переходим в веб папку
django-admin.py startproject myapps # создаем проект myapps в текущем каталоге
генерируется папка myapps и четыре файла :
__init__.py (стандартный файл для питоновского модуля)
manage.py (нужен для управление проектом)
settings.py (настройки )
urls.py (роутер настройки URL)
2.Настройка
2a. базы данных ( settings.py )
DATABASES = {'default': {'ENGINE': 'mysql',
'NAME': 'test',
'USER': 'root',
'PASSWORD': '1',
'HOST': 'localhost', }}
2a. подключаемые модули - как свои так от Д ( settings.py )
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions'
'django.contrib.sites',
'django.contrib.admin', # дъянго админ
'django.contrib.flatpages', # дъянго модуль для статических страниц
'myapps.polls' # мой модуль
)
указаны подключенные к приложению модули.
2б. Указываем пути .
добавляем в начало файла
import os
def rel(*x):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)
# функция для изменения относительных путей на абсолютные
MEDIA_ROOT = rel('media')
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/admin/'
TEMPLATE_DIRS = (
rel('templates') # указываем папку для видов (аналог папки views в CAKEPHP)
)
2в. URL роутер ( urls.py )
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^polls/', include('myapps.polls.urls')), # ссылка на роурер модуля
(r'^admin/',include(admin.site.urls)), # роутер от дъянго модуля админ
(r'^$', 'myapps.polls.views.index'), # старновая страница
)
это уже роутер модуля (polls/urls.py)
from django.conf.urls.defaults import *
urlpatterns = patterns('myapps.polls.views', # приставка
(r'^$', 'index'),
(r'^(?P
(r'^(?P
(r'^(?P
3. Cоздание первого модуля
manage.py startapp polls # создается папка polls в каталоге myapps и файлы модуля.
- models.py # Модель
- views.py # аналог Controllers из cakephp
3a. создаем модель
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
>manage.py sql polls # просмотр генерируемого slq
>manage.py syncdb # выполняем и смотрим что появилось в БД
Модули используют таблицы в базе данных и команда manage.py syncdb "смотрит" что есть в INSTALLED_APPS и создает таблицы для этих модулей.
3б. работаем с конролером (view.py)
from django.shortcuts import render_to_response, get_object_or_404
from myapps.polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
return render_to_response('polls/index.html', {'latest_poll_list': latest_poll_list})
def detail(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
return render_to_response('polls/detail.html', {'poll': p})
def results(request, poll_id):
return HttpResponse("You're looking at the results of poll %s." % poll_id)
def vote(request, poll_id):
return HttpResponse("You're voting on poll %s." % poll_id)
3в. добавляем темплайты и виды
в C:\xampp\htdocs\myapps\templates\polls
index.html
{% if latest_poll_list %}
{% for poll in latest_poll_list %}
{{ poll.question }}
{% endfor %}
{% else %}
No polls are available.
{% endif %}
detail.html
{{ poll.question }}
{% for choice in poll.choice_set.all %}
{{ choice.choice }}
{% endfor %}
ну а теперь можно уже кое что и поробовать
стартуем сервер для этого я сделал start.bat
cd C:\xampp\htdocs\myapps
manage.py runserver 80
и идем на http://localhost/admin/
вводим пароль и логин который указали при выполнении manage.py syncdb
скачать исходники можно по этой ссылке
http://files.mail.ru/4ICRRZ
Комментариев нет:
Отправить комментарий