マルチプレイブログのプロジェクトのビルドプロセス(C)

ボーエン関連インターフェース

機能解析

ブログアプリケーションを作成します。

 

モデル

#在ポスト/ models.py中
から django.db 輸入モデル
 から user.modelsをインポートするユーザー
 #がここにあなたのモデルを作成します。
クラス・ポスト(models.Model):
     クラスのMeta:
        DB_Tableの = ' ポスト' 
    ID = models.AutoField(PRIMARY_KEY = 真)
    タイトル = models.CharField(max_lengthを= 256、ヌル= False)が
    POSTDATE = models.DateTimeField(ヌル= 偽)
    著者 = models.ForeignKey(ユーザー)指定外键、移行会生成AUTHOR_ID字段
    コンテンツアクセスself.contentインスタンス、その含有量はself.content.contentある

    DEF  __repr__ :(自己)
         リターン ' <ポスト{} {} {} {}> ' .format(
            self.id、self.title、self.author 、self.content 
            同書self.id、self.title、self.author_id、self.content 


    __str__ = __repr__ 

MySQLのテーブル・ワン、1対多数の問題を参照します。https://www.cnblogs .COM / Camiluo / P- / 10615065.htmlの
クラスのコンテンツ(models.Model):
     クラスのMeta:
        DB_Tableの = ' コンテンツ' 
    主キーは、自動的に作成し、自動インクリメントの主キー 
    ポスト= models.OneToOneField(ポスト、to_field = ID)一つは、ここでありポストプライマリーキーID外部キー参照であり、省略することができる 
    コンテンツ= models.TextField(ヌル= 偽)

    DEF  __repr__ (自己):
         戻り <コンテンツ{} {}> 。フォーマット:(self.post.id、self.contentの[20である])

    __str__ = __repr__

ルーティング

グローバル設定

#の在ブログ/ urls.py中
から django.conf.urls 輸入含ま
urlpatterns = [ 
    URL(R ' ^ $ ' 、admin.site.urls)、
    URL(R ' ^管理/ ' 、admin.site.urls)を、
    URL(R ' ^インデックス/ ' 、インデックス)、
    URL(R '^ testfor /'、testfor)、 
    URL(R ' ^ユーザ/ '、含む(' user.urls ')) 多级路由 
    URL(R ' ^ポスト/ '、(含める" post.urlsを')) 多段ルーティング 
]

#1 POST / urls.py 
から django.conf.urls インポートURL
 から .views インポートパブ、GET、のgetAll 、testMiddle 


urlpatterns = [ 
    URL(R&LT ' ^パブ' 、パブ)、
    URL(R&LT ' ^(\ + D)$ ')を取得、パラメータ渡されたstrのタイプを取得する 
    URL(R&LT ' ^ $ " 、のgetAll)を、
]

パブ・インターフェース

#1 ポスト/ urls.py 
から django.httpの輸入のHttpRequest、HttpResponseと、JsonResponse
 から django.httpの輸入HttpResponseBadRequest、HttpResponseNotFound
 から user.viewsのインポート認証
 から user.models インポートユーザー
 インポートのsimplejsonの
 インポート日時を
 から .models インポートポストを、コンテンツ

あなたを作成します。ここの景色。
@authenticate
 デフパブ(リクエスト:HttpRequestの):
    ポスト = ポスト()
    コンテンツ =コンテンツ()
     のtry 
        ペイロード = simplejson.loads(request.body)
        post.titleを =ペイロード[ ' タイトル' ]
         #のpost.author =ユーザー(ID = request.user.id)#USERは、注入時に認証されます 
        =からrequest.user post.author #のユーザーは、移植時に認証され 
        post.postdate = datetime.datetime.now(
            datetime.timezone(datetime.timedelta(時間 = 8 )) 
        post.save() ポストを取得します。 ID 

        content.content =ペイロード[ ' コンテンツ' ]
        content.post =ポスト#1
 
        content.save()

        戻りJsonResponse({
             ' post_idの' :post.id 
        })
    以外Eとして例外:
         プリント(e)に
         戻り HttpResponseBadRequest()

インターフェイスを取得

継続するには。

 

おすすめ

転載: www.cnblogs.com/xiaoshayu520ly/p/11432545.html