ボーエン関連インターフェース
機能解析
ブログアプリケーションを作成します。
モデル
#在ポスト/ 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()
インターフェイスを取得
継続するには。。。