Предложения хотели: учебный материал для Django

Я ищу совет относительно лучших ресурсов, чтобы изучить, как разработать веб-приложения с Django [платформа Python]. Вот являются некоторые информацией, чтобы помочь респондентам сузить вниз огромное количество опций "там".

Где я стою

  • Я знаю Python (2.x ряд), и я разработал несколько приложений/сценариев с ним. Я не определил бы меня ниндзя Python всегда, но я думаю, получил очень хорошее понимание структуры языка и - прежде всего - философия.
  • У меня есть PHP-только опыт с веб-разработкой.
  • У меня есть справедливое понимание подхода MVC к платформам (CakePHP), но не такому опыту IRL.

Что я ищу

  • Структурированный учебный материал: книжные заголовки, учебные руководства онлайн, видео, и т.д...
  • Жизнеописания и личные аккаунты: как Вы учились? почему Вы принимали решение изучить тот путь? это работало? Вы изменили бы что-нибудь в способе, которым Вы изучили django?
  • Любой вид совета, Вы думаете, стоит совместно использовать!

Я хотел бы подчеркнуть, что я только не ищу необработанные ссылки (я мог, вероятно, найти тех, которые сам имеют Google, в конце концов!), но я скорее ищу Ваше мнение и совет (со ссылкой, присоединенной к ним)!

Заранее спасибо в течение Вашего времени!

6
задан mac 17 February 2010 в 16:52
поделиться

4 ответа

Мое мнение было выражено в этом ответе

Я читал djangobook, практические проекты django, про django и некоторые части «Веб-разработка с django». Все они хорошие книги.

Но я думаю, что для человека, уже имеющего достаточно опыта работы с php и python, практические проекты Django Джеймса Беннета - очень хороший актив. Я очень рекомендую это.

4
ответ дан 17 December 2019 в 00:08
поделиться

Посмотрите PyCharm от JetBrains - я только начинаю баловаться Django, и эта IDE имеет встроенную поддержку Django.

0
ответ дан 17 December 2019 в 00:08
поделиться

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

Это подводит меня к следующему пункту. Django известен тем, что имеет отличную документацию. В ней так много примеров кода и объяснений проблем, что документация является одной из самых ценных вещей в django.

Наконец, не бойтесь задавать вопросы сообществу django. Этот сайт (stackoverflow) и IRC-канал (irc.freenode.net #django) очень гостеприимны и полезны. Если у вас есть вопросы, просто спросите. Кто-нибудь обязательно поможет.

1
ответ дан 17 December 2019 в 00:08
поделиться

Как Marc_s сказал, это не может быть сделано. В качестве обходного пути необходимо сделать так, чтобы база данных вызывала программу командной строки на хосте, которая отправляла файл по ftp, копировала его в какую-либо общую папку или что-то еще.

Удачи

-121--2953989-

Здесь входит TemplateBinding (TemplateBinding используется внутри шаблонов управления и используется для извлечения значений из шаблонного элемента управления, в данном случае кнопки).

<Ellipse Fill="LightGreen" 
    Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding ActualHeight}"/>

Обратите внимание, что это более короткая форма использования:

{Binding ActualWidth, RelativeSource={RelativeSource TemplatedParent}}

Расширение разметки TemplateBinding оптимизировано только для привязок TemplateParent.

Это говорит, что если вы хотите, чтобы это был только круг, если ваш эллипс был меньше W/H, то ваше содержание будет легко вытекать из него, что, я сомневаюсь, то, что вы на самом деле хотите..? Я думал использовать многозначный конвертер для этого, но вы не можете привязаться к параметру конвертера, так что это не так.

В этом случае прикрепленное поведение сработало бы, но оно не очень красиво.

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:c="clr-namespace:WpfApplication1"
    xmlns:local="clr-namespace:WpfApplication1"
    Title="Window1" Height="300" Width="300">

    <Grid>
        <Button Content="Yo!" Width="50" Height="30">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Ellipse Fill="LightGreen" local:ConstrainWidthHeight.ConstrainedWidth="{TemplateBinding ActualWidth}" local:ConstrainWidthHeight.ConstrainedHeight="{TemplateBinding ActualHeight}"/>
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Grid>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</Window>

... и прикрепленное поведение:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace WpfApplication1 {
    public class ConstrainWidthHeight {
        public static readonly DependencyProperty ConstrainedWidthProperty =
            DependencyProperty.RegisterAttached( "ConstrainedWidth", typeof( double ), typeof( ConstrainWidthHeight ), new PropertyMetadata( double.NaN, OnConstrainValuesChanged ) );
        public static readonly DependencyProperty ConstrainedHeightProperty =
            DependencyProperty.RegisterAttached( "ConstrainedHeight", typeof( double ), typeof( ConstrainWidthHeight ), new UIPropertyMetadata( double.NaN, OnConstrainValuesChanged ) );

        public static double GetConstrainedHeight( FrameworkElement obj ) {
            return (double) obj.GetValue( ConstrainedHeightProperty );
        }

        public static void SetConstrainedHeight( FrameworkElement obj, double value ) {
            obj.SetValue( ConstrainedHeightProperty, value );
        }

        public static double GetConstrainedWidth( FrameworkElement obj ) {
            return (double) obj.GetValue( ConstrainedWidthProperty );
        }

        public static void SetConstrainedWidth( FrameworkElement obj, double value ) {
            obj.SetValue( ConstrainedWidthProperty, value );
        }

        private static void OnConstrainValuesChanged( object sender, DependencyPropertyChangedEventArgs e ) {
            FrameworkElement element = sender as FrameworkElement;
            if( element != null ) {
                double width = GetConstrainedWidth( element );
                double height = GetConstrainedHeight( element );

                if( width != double.NaN && height != double.NaN ) {
                    double value = Math.Min( width, height );

                    element.Width = value;
                    element.Height = value;
                }
            }
        }
    }
}

Итак, причина, по которой требуется использование прикрепленного поведения (в любом случае AFAICT), заключается в том, что для центрирования эллипса (в сценарии без квадратов/кругов) необходимо, чтобы HorizontalalAlignment и VerticalAlignment вступили в силу. Значение по умолчанию для обоих параметров - «Растянуть», и если задана явная ширина/высота, они ведут себя как «Центр».

Если параметр Stretch = «Uniform» включен, эллипс всегда физически занимает все пространство, и только чертеж эллипса будет ограничен. При этом нарисованная фигура эллипса всегда будет начинаться в левом верхнем углу. Так что в этом случае, если ваша кнопка шире, чем она высокая, нарисованная часть эллипса не будет центрирована вместе с текстом.

Этот код является хорошим примером того, что вы, вероятно, не ищете:

<Ellipse Height="{TemplateBinding ActualHeight}" Width="{TemplateBinding ActualWidth}" Fill="LightGreen" Stretch="Uniform" />

... и кнопку, использующую его (с неквадратной шириной/высотой):

<Button Content="YO!" Style="{StaticResource Button2}" Width="120" Height="53" VerticalAlignment="Top"></Button>

Выглядит так:

Ugly http://www.freeimagehosting.net/uploads/84e62c4982.png

... По сравнению с этим с присоединенным параметром свойства:

alt text http://www.freeimagehosting.net/uploads/40755babcd.png

-121--3977921-

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

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

Две вещи я хотел бы Django документы были лучше - скажите четко, где импортировать вещи прямо при каждом определении класса, и иногда я хочу, чтобы объяснения были немного короче.

2
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: