最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Python的Django框架中實現(xiàn)Hacker News的一些功能

 更新時間:2015年04月17日 12:06:34   投稿:goldensun  
這篇文章主要介紹了在Python的Django框架中實現(xiàn)Hacker News的一些功能,包括投票“頂”評論等功能,需要的朋友可以參考下

逐步指示

這是提供給更喜歡閱讀的人的視頻文本版本。我們將創(chuàng)建一個類似黑客新聞Reddit的社交新聞網(wǎng)站。它將被稱為“鋼鐵傳聞”,作為一個分享關(guān)于“鋼鐵俠”的有趣傳聞和對其進行投票的地方。

屏幕錄像第一部分的概述:

  •     目標(biāo)
  •     虛擬環(huán)境- 從零開始!
  •     模型管理 - 夢想的工作 #78
  •     基本的模板
  •     通用視圖 - 新聞列表視圖和 新聞細(xì)節(jié)視圖
  •     分頁-免費!!


設(shè)置虛擬環(huán)境

    我們將用virtualenv virtualenvwrapper來建立一個虛擬開發(fā)環(huán)境。首先請確認(rèn)你已經(jīng)安裝了它們:

    

mkvirtualenv djangorocks

    我在屏幕錄像中使用的是一個叫Xubuntu的變種Ubuntu系統(tǒng)。但你應(yīng)該能夠在其他的操作系統(tǒng)以最小的改變重復(fù)這些步驟。

    安裝 Django (請確認(rèn)你已經(jīng)安裝了pip ):
 

  pip install Django==1.5

    你也可以使用 Django 1.5.1. 這些方法和代碼在最新的 Django 版本中沒有測試過能否工作,所以最好按照本教程使用的版本來學(xué)習(xí)。

創(chuàng)建工程和應(yīng)用

    創(chuàng)建一個名為steelrumors的工程:
 

復(fù)制代碼 代碼如下:

    cd ~/projects
    django-admin.py startproject steelrumors
    cd steelrumors
    chmod +x manage.py

    在你喜愛的編輯器中打開steelrumors/settings.py文件。定位和改變下列內(nèi)容 (改變用粗體顯示):
       

復(fù)制代碼 代碼如下:
'ENGINE': 'django.db.backends.sqlite3'
        'NAME': 'database.db',

        最后 INSTALLED_APPS = ( 'django.contrib.admin',

    接下來,修改steelrumors/urls.py,取消下列行的注釋:
 
    

from django.contrib import admin
  admin.autodiscover()
   
  urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
  )

    同步創(chuàng)建管理對象并進入管理詳細(xì)資料:

  

 ./manage.py syncdb

    打開一個新標(biāo)簽或一個新終端并保持服務(wù)器實例在運行(不要忘了在這個終端上發(fā)布可工作的djangorocks):
 

  ./manage.py runserver

    訪問管理頁 (一般是 http://127.0.0.1:8000/admin/) 并登錄.

    創(chuàng)建鏈接應(yīng)用:
 

  ./manage.py startapp links

    輸入下面兩個模型類到links/models.py文件中:
 
  

 from django.db import models
  from django.contrib.auth.models import User
   
  class Link(models.Model):
    title = models.CharField("Headline", max_length=100)
    submitter = models.ForeignKey(User)
    submitted_on = models.DateTimeField(auto_now_add=True)
    rank_score = models.FloatField(default=0.0)
    url = models.URLField("URL", max_length=250, blank=True)
    description = models.TextField(blank=True)
   
    def __unicode__(self):
      return self.title
   
  class Vote(models.Model):
    voter = models.ForeignKey(User)
    link = models.ForeignKey(Link)
   
    def __unicode__(self):
      return "%s upvoted %s" % (self.voter.username, self.link.title)

    建立相應(yīng)的管理類。輸入下面內(nèi)容到 links/admin.py 中:
 
   

 from django.contrib import admin
  from .models import Link, Vote
   
  class LinkAdmin(admin.ModelAdmin): pass
  admin.site.register(Link, LinkAdmin)
   
  class VoteAdmin(admin.ModelAdmin): pass
  admin.site.register(Vote, VoteAdmin)

    輸入下面內(nèi)容到links/views.py:
 
  

 from django.views.generic import ListView
  from .models import Link, Vote
   
  class LinkListView(ListView):
    model = Link

  Insert following lines intosteelrumor/urls.py:
 
  from links.views import LinkListView
  ...
  urlpatterns = patterns('',
    url(r'^$', LinkListView.as_view(), name='home'),

    建立一個新的模板文件夾,在steelrumors/templates/links/link_list.html中輸入下面內(nèi)容:
 
    

<ol>
  {% for link in object_list %}
    <li>
    <a href="{{ link.url }}">
     <b>{{ link.title }}</b>
    </a>
    </li>
  {% endfor %}
  </ol>

    編輯settings.py,添加你的兩個應(yīng)用到INSTALLED_APPS = (的尾部:
  

  'links',
  'steelrumors',
  )

    同步建立鏈接對象,并在管理界面里輸入一些數(shù)據(jù):
  
 

  ./manage.py syncdb

 添加品牌

    建立一個通用基本模板steelrumors/templates/base.html:
 
   

 <html>
  <body>
  <h1>Steel Rumors</h1>
   
  {% block content %}
  {% endblock %}
   
  </body>
  </html>

    修改steelrumors/templates/links/link_list.html,用這種方式把原先代碼包裹起來:

    

 
  {% extends "base.html" %}
   
  {% block content %}
  ...
  {% endblock %}

投票數(shù)模型管理器

    我們需要在我們的通用ListView中添加一個計票數(shù)。添加這些到 links/models.py:
 
 

  from django.db.models import Count
   
  class LinkVoteCountManager(models.Manager):
    def get_query_set(self):
      return super(LinkVoteCountManager, self).get_query_set().annotate(
        votes=Count('vote')).order_by('-votes')

  Insert these two lines into the Link class inlinks/models.py:
 
  class Link(models.Model):
  ...
   
    with_votes = LinkVoteCountManager()
    objects = models.Manager() #default manager

    編輯 links/views.py,添加這兩行到LinkListView類中:
   
   

 class LinkListView(ListView):
  ...
   
    queryset = Link.with_votes.all()
    paginate_by = 3

狂歡(作弊)

您可以在django shell中用下面的行給隨機的標(biāo)題添加100個選票數(shù):
 

$ ./manage.py shell
>>> from links.models import Link
>>> for i in xrange(100): Vote(link=Link.objects.order_by('?')[0],voter=a).save()

最終評論

或許你想知道這個網(wǎng)站的這個版本是否有用,我想說,它作為私人測試版是工作不錯的。任何新用戶都必須通過管理界面手動添加。如果想讓他們登陸管理界面,他們必須是員工。員工可以通過手動創(chuàng)建投票對象來進行投票。

站點面向大眾的部分仍能顯示來自員工投票率最高的傳聞?;谌绾卧O(shè)計好的模板的問題,這個版本也可以用來獲取對網(wǎng)站的設(shè)計和品牌的反饋。

總結(jié)完第一部分。想得到隨后部分的更新,請在Twitter上粉我一個@arocks。

相關(guān)文章

  • pandas 使用apply同時處理兩列數(shù)據(jù)的方法

    pandas 使用apply同時處理兩列數(shù)據(jù)的方法

    下面小編就為大家分享一篇pandas 使用apply同時處理兩列數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python和C語言混合編程實例

    python和C語言混合編程實例

    這篇文章主要介紹了python和C語言混合編程實例,文中開發(fā)了一個tcp端口ping程序來介紹混合編程,需要的朋友可以參考下
    2014-06-06
  • pip?install?jupyterlab失敗的原因問題及探索

    pip?install?jupyterlab失敗的原因問題及探索

    在學(xué)習(xí)Yolo模型時,嘗試安裝JupyterLab但遇到錯誤,錯誤提示缺少Rust和Cargo編譯環(huán)境,因為pywinpty包需要它們來編譯,由于在conda環(huán)境下操作,Rust和Cargo已經(jīng)安裝,問題是pywinpty包丟失,安裝pywinpty包后,再次執(zhí)行pip?install?jupyterlab即可正常下載
    2025-02-02
  • Python Matplotlib庫入門指南

    Python Matplotlib庫入門指南

    這篇文章主要介紹了Python Matplotlib庫入門指南,本文講解了Matplotlib是什么,然后給出了Matplotlib基礎(chǔ)繪圖實例如繪制折線圖、繪制多線圖,并給出了圖例功能使用實例,需要的朋友可以參考下
    2015-05-05
  • pytorch 固定部分參數(shù)訓(xùn)練的方法

    pytorch 固定部分參數(shù)訓(xùn)練的方法

    今天小編就為大家分享一篇pytorch 固定部分參數(shù)訓(xùn)練的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python實現(xiàn)爬蟲IP負(fù)載均衡和高可用集群的示例代碼

    Python實現(xiàn)爬蟲IP負(fù)載均衡和高可用集群的示例代碼

    做大型爬蟲項目經(jīng)常遇到請求頻率過高的問題,這里需要說的是使用爬蟲IP可以提高抓取效率,本文主要介紹了Python實現(xiàn)爬蟲IP負(fù)載均衡和高可用集群的示例代碼,感興趣的可以了解一下
    2023-12-12
  • 淺談python內(nèi)置函數(shù)callable的用法

    淺談python內(nèi)置函數(shù)callable的用法

    這篇文章主要介紹了淺談python內(nèi)置函數(shù)callable的用法, callable函數(shù)可用于判斷一個對象是否可以被調(diào)用,若對象可以被調(diào)用則返回True,反之則返回False,需要的朋友可以參考下
    2023-04-04
  • PyCharm取消波浪線、下劃線和中劃線的實現(xiàn)

    PyCharm取消波浪線、下劃線和中劃線的實現(xiàn)

    這篇文章主要介紹了PyCharm取消波浪線、下劃線和中劃線的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python數(shù)據(jù)結(jié)構(gòu)之圖的實現(xiàn)方法

    python數(shù)據(jù)結(jié)構(gòu)之圖的實現(xiàn)方法

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之圖的實現(xiàn)方法,實例分析了Python圖的表示方法與常用尋路算法的實現(xiàn)技巧,需要的朋友可以參考下
    2015-07-07
  • Python常用工具之音頻調(diào)整音量

    Python常用工具之音頻調(diào)整音量

    這篇文章主要介紹一個可以將音頻提升音量的python常用工具,代碼具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2021-11-11

最新評論

保亭| 巨鹿县| 沁阳市| 合水县| 宜昌市| 陇南市| 隆化县| 邹平县| 白银市| 余干县| 西林县| 南郑县| 澳门| 云梦县| 沽源县| 南平市| 华宁县| 都安| 高邮市| 大悟县| 吉安市| 新乡县| 新蔡县| 乐至县| 扶绥县| 宁明县| 新余市| 上栗县| 宝坻区| 岚皋县| 永兴县| 深泽县| 镇原县| 巢湖市| 澳门| 股票| 韶关市| 武平县| 南宫市| 定西市| 依兰县|