2016-12-29 3 views
0

Djangoでは、あなたのウェブサイトのリンク/エンドポイントのURLを作成します。私の質問は、多くのリンクを使って何かを作成している場合、文字通りurls.pyに数百または数千のURL定義を持つことができるブログアプリです。リンクが入力を捕捉しないというパラメータがリンクにないと仮定すると、そのようなDjangoアプリケーションは、URL定義を最小限にするためにデータベースを利用する方法をデバイスに必要とします。誰かがより効率的なソリューションを考えることができますか?DjangoでURL定義の数をどうやって模倣するのですか?

+1

まあで、より多くの情報と全体の多くを行うことができ、あなたの仮定が有効ないないようです。なぜ表示するコンテンツを決定するためにURLにスラッグ値をキャプチャしないのですか? –

+0

@ダニエルはあなたのようなことを言っていますか?(r '^ myapp /(?P /$'、views.showpage)、swictch/ifステートメントで確認するかORMで確認しますか? – user7339197

+0

if文がそこで実行される(そしてPythonにはスイッチがない) –

答えて

2

DjangoのURLには、たくさんのURLを生成するために代用できるパラメータがあります。

url("^blog/([0-9]+)/$, views.blog_details) 

([0-9]+一部を探すためにはDjangoを告げると、あなたのURLを定義することにより、すべてのブログのURLを作成することができ、あなたのBlogモデルはその後

class Blog(models.Model): 
    title=models.CharField(max_length=200) 
    content=models.TextField() 

のようなものであると言うことができます数字は引数として使用され、/blogs/1234/のようなURLになります。

対応するビュー関数wou LD引数

def blog_details(blog_id): 
    blog=get_object_or_404(Blog, pk=blog_id) 
    # generate view of this blog from template 

としてのブログのIDを取るあなたはURLパラメータ、https://docs.djangoproject.com/en/1.10/topics/http/urls/

+0

あなたは、以下のものを使いたいかもしれない:get_object_or_404()https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#get-オブジェクト - または - 404 – Paul

+0

ありがとう!これを反映するために私の答えを編集 – Bitonator

関連する問題