0

大晦日用のシンプルな Web アプリを作成しています。私は Django を使用しており、SQLite3 データベースをセットアップしています。

Web アプリの背後にあるアイデアは、誰かが自分の Twitter ユーザー名を使用してテキストの一部を送信し (ホームページで文を締めくくる)、その文が関連付けられた @username と共にホームページに印刷され、ユーザーはそれをツイートすることもできます。彼らは望んでいます。

方法を理解する必要があります...

  • @username を認証するために、Twitter 経由でユーザーにログインしてもらいます (おそらく、python-twitter などのラッパーまたは推奨されるラッパーを使用します)。
  • テキストと @username をデータベースに投稿し、公開された日時とともに保存します
  • データベースから @username とテキストを取得し、文章と @username (作者として) を投稿のフィード (Twitter フィード スタイル) のホームページに出力します。

これはすべて新しい領域であり、大晦日まであと数日というプレッシャーを感じています。どんな助けでも大歓迎です!

4

1 に答える 1

1
  1. ユーザーがTwitterを使用してログイン/認証できるようにするには、 TwitterAPIOauthを使用する必要があります。既製のソリューションをお探しの場合は、そのまま使用できるRaymondPennersのdjango-allauthライブラリをご覧になることをお勧めします。このallauthチュートリアルを使用して、セットアップの基本を理解できます。

  2. Twitterでallauthアプリケーションが機能するようになったらmodel、メッセージ、メッセージが投稿された日時、そのメッセージの所有者などの情報を保存するを作成する必要があります。これを実現するための非常に単純なモデルは、次のようになります。

    クラスMessage(models.Model):

    """
    This is the message class that stores all the message
    objects.
    """
    
    message = models.TextField()
    time_posted = models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(User)
    

モデルが完成したら、ユーザーが実際にメッセージを投稿するフォームが必要になります。フォームは、次のような単純なModelFormにすることができます。

MessageForm(forms.ModelForm):
    """
    This is the base form for posting a message
    """

    class Meta:
        model = models.Message

        fields = ('message')

次に、テンプレートをレンダリングするビューにフォームを渡す必要があります。多分このようなもの。同じビューで、メッセージの投稿も行うことができます。

def post_message(request):
    form = forms.MessageForm()
    if request.method == 'POST':
        p_form = forms.MessageForm(request.POST)
        if p_form.is_valid():
            data = p_form.save(commit=False)
            data.owner = request.user
            data.save()
            return redirect('/success/')  # Redirect to a success page
        else:
            raise ValidationError('The Form did not validate')
    return render_to_response('post_message.html', {'form' : form}, context_instance=RequestContext(request))

templates次に、上記のビューが要求されると呼び出される「post_message」という名前のテンプレートを書き込む必要があります。非常に単純なテンプレートは次のようになります。

{% if form.errors %}
    {{ form.errors %}
{% endif %}

<form action ="" method ="POST">
{% csrf_token %}
{{ form }}
<input type="submit" id="submit" value="Post Message" />
</form>

テンプレートの準備ができたら、urls.pyファイルで単純なURL(以下に定義されているもの)を使用して、要求されたURLをビューに接続できます。したがって、ユーザーが要求したときに上記のビューを呼び出す場合は、次のように言いますyourapp.com/post/

url(r'^post/$', 'yourapp.views.post_message', name="post"),

以上です。また、 Djangoの基本的なポーリングアプリケーションチュートリアルを実行して、djangoエンティティがどのように連携して機能するかを理解することをお勧めします。

上記の例がプロジェクトに役立つことを願っています。

于 2012-12-27T21:00:02.490 に答える