Pinax代碼分析2

Pinax代碼分析2

上一次大概分析了account package的代碼。除了account之外,Pinax內置的apps還有:analyticsauthsubbasic_profilesbbauthblogmiscprofilesprojectssignup_codesstaticfilestribeswaitinglist

analytics

analytics app 用來在項目中使用google統計。定義了一個模板標籤來插入 google 統計的代碼,從源代碼看來需要在settings裏設置URCHIN_ID。沒有viewsmodels

authsub

用於獲得Google Contacts的訪問權限。
url
authsub/login/

basic_profiles

一個基本的檔案app,用戶的姓名、關於、地點、和網站,和account app類似。我安裝的項目沒有激活這個app

bbauth

貌似連接yahoo的認證。應該是和authsub一樣的。直接使用的 ybrowserauth 模塊。
url
bbauth/
直接運行不成功,需要settings裏設置BBAUTH_APP_ID和BBAUTH_SHARED_SECRET


blog

博客
url
blog/
有一個templates子目錄,notification子目錄是爲了通知模塊建立的模板。此外的模板都是用於定義templatetag準備的模板。

例如templatetags/blog.py定義了一個名爲 render_content inclusion_tag

@register.inclusion_tag('wiki/article_content.html')
def render_content(article, content_attr='content', markup_attr='markup'):
    return {
        'content': getattr(article, content_attr),
        'markup': getattr(article, markup_attr)
    }


其中inclusion_tag裝飾器接受一個模板作爲參數。函數 render_content 返回的字典將被用於 wiki/article_content.html 文件。這裏的blog app居然用了wiki app的模板,而且在blog的子目錄裏還有一份一樣的,但是沒有使用的模板拷貝。感覺代碼比較混亂。
參考:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags

feeds.py
用於生成blogfeeds,它使用的是 http://code.google.com/p/django-atompub/ 項目的 atom.py 文件,重命名爲了atomformatfeeds生成之後要在項目的urls中定義訪問feeds的地址:

from blog.feeds import BlogFeedAll, BlogFeedUser
blogs_feed_dict = {"feed_dict": {
    'all': BlogFeedAll,
    'only': BlogFeedUser,
}}


urlpatterns = patterns('',
    ……
    (r'^feeds/posts/(.*)/$', 'django.contrib.syndication.views.feed', blogs_feed_dict),
    ……
)


management.py
用於創建 notification 的類型。

    def create_notice_types(app, created_models, verbosity, **kwargs):
        notification.create_notice_type("blog_friend_post", _("Friend Posted to Blog"), _("a friend of yours posted to their blog"), default=2)
        notification.create_notice_type("blog_post_comment", _("New Comment on Blog Post"), _("a comment was made on one of your blog posts"), default=2)


第一個參數是Label、第二個參數是顯示的標題,地三個參數是描述,最後一個參數在文檔裏沒有說明,應該是控制在默認情況下是否發送郵件。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章