ニュースキュレーターとニュース購読アプリケーションを作成する
私は最近、django-newsfeedという名前のdjangoパッケージをリリースしました.
これは本当にニュースキュレーターやニュースレターのサブスクリプションのウェブサイトを構築することが容易になります.
今日、私は簡単にニュースキュレーターのウェブサイトや
あなたの既存のウェブサイトにニュースフィード購読サービスを加えてください.
django > = 2.2 djangoニュースフィード セロリ セロリビート レッシス
レッツゲット VirtualEnvをインストールし、要件をインストールします.
セットアップジャンゴ
は現在インストールされたアプリに
は
スーパーユーザを作成し、Django開発サーバーを走らせる
Django管理者ページにログインして、ポスト、問題と会報を作成してください. これで次のようになります.
ラテンアメリカ問題:
発行官一覧
詳細不明:
購読料:
確認したニュースレター
解雇されたニュースレター:あなたの好みにテンプレートをオーバーライドします.詳しくはclick here
こちらはcode for this tutorialです.
オーバーライドされたテンプレートをここで見ることができます.これは、スタイルをテンプレートにブートストラップを使用します.
プロジェクトが設定されている今、我々はニュースレターを送信するセロリタスクを作成することができます.
セロリの設定のセットアップcelery from here. Redisのためにセロリセッティングを
に電子メール設定を加えてください
DJangoアプリを作成し、 現在インストールされているアプリに
アプリディレクトリで
セロリの仕事で.
これで、django管理ページからニュースレターを送信することができます.このディレクトリをプロジェクトディレクトリの
(ステップ3以降で作成するファイルは
今、あなたはこのスケジュールされたタスクを自動的にすべての加入者にスケジュールされたニュースレターを送信することができます.アプリディレクトリ242479142ファイルにこのコードを追加します.
あなたはGithubで
ここからパッケージをチェックアウトします
あなたがこのパッケージを使用するならば
またはコメントセクションで.
何か提案があれば、このパッケージに貢献したい
を作成してください
そして、issueを読みます.
フィードバックと貢献は常に歓迎です.
これは本当にニュースキュレーターやニュースレターのサブスクリプションのウェブサイトを構築することが容易になります.
今日、私は簡単にニュースキュレーターのウェブサイトや
あなたの既存のウェブサイトにニュースフィード購読サービスを加えてください.
要件
セットアッププロジェクト:
レッツゲット
$ mkvirtualenv example-newsfeed # you can use virtualenv instead of virtualenvwrapper
$ mkdir django-newsfeed
$ cd django-newsfeed/
$ pip install celery Django django-celery-beat django-newsfeed redis
**システムにREDISをインストールする必要があります.こちらはguideです$ django-admin.py startproject example_newsfeed . # dot (.) is added to create project on current directory
$ python manage.py migrate
newsfeed
とcelery-beat
を加えます.INSTALLED_APPS = [
...
'django_celery_beat',
'newsfeed',
]
django-newsfeed
のURLをプロジェクトurls.py
に加えます.urlpatterns = [
...
path('newsfeed/', include('newsfeed.urls', namespace='newsfeed')),
...
]
$ python manage.py createsuperuser
$ python manage.py runserver # http://127.0.0.1:8000/
ラテンアメリカ問題:
newsfeed/
発行官一覧
newsfeed/issues/
詳細不明:
newsfeed/issues/<slug:issue_number>/
購読料:
newsfeed/subscribe/
確認したニュースレター
解雇されたニュースレター:
newsfeed/subscribe/confirm/<uuid:token>/
こちらはcode for this tutorialです.
オーバーライドされたテンプレートをここで見ることができます.これは、スタイルをテンプレートにブートストラップを使用します.
ニュースレターの設定
プロジェクトが設定されている今、我々はニュースレターを送信するセロリタスクを作成することができます.
セロリの設定
newsfeed/unsubscribe/
に加えます# Celery Settings
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = TIME_ZONE
# Email Settings
EMAIL_HOST = 'test_host'
EMAIL_HOST_USER = 'test_user'
EMAIL_HOST_PASSWORD = 'test_password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
***生産サーバdjango referenceに変更しますsettings.py
$ python manage.py startapp core
settings.py
を追加します.INSTALLED_APPS = [
...
'core',
]
core
ファイルを作成します.このコードをファイルに貼り付けます.from celery.decorators import task
from newsfeed.models import Newsletter
from newsfeed.utils.send_newsletters import send_email_newsletter
@task(name="send_email_newsletter_task")
def send_email_newsletter_task(newsletters_ids=None, respect_schedule=True):
newsletters = None
if newsletters_ids:
newsletters = Newsletter.objects.filter(
id__in=newsletters_ids
)
send_email_newsletter(
newsletters=newsletters,
respect_schedule=respect_schedule
)
**これはcore
によって提供されるtasks.py
を呼び出すことを可能にしますセロリの仕事で.
これで、django管理ページからニュースレターを送信することができます.
core
ファイルに追加します.(ステップ3以降で作成するファイルは
EmailNewsletterSender
).app.conf.beat_schedule = {
'send_email_newsletter': {
'task': 'send_email_newsletter_task',
# http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html
# run this task every hour
'schedule': crontab(minute=0, hour='*'),
}
}
これは毎時ニュースレターを送信する予定です.今、あなたはこのスケジュールされたタスクを自動的にすべての加入者にスケジュールされたニュースレターを送信することができます.
from django.contrib import admin, messages
from newsfeed.admin import NewsletterAdmin
from newsfeed.models import Newsletter
from .tasks import send_email_newsletter_task
admin.site.unregister(Newsletter)
@admin.register(Newsletter)
class NewsletterAdmin(NewsletterAdmin):
def send_newsletters(self, request, queryset):
newsletter_ids = list(queryset.values_list('id', flat=True))
send_email_newsletter_task.delay(
newsletters_ids=newsletter_ids,
respect_schedule=False
)
messages.add_message(
request,
messages.SUCCESS,
'Sending selected newsletters(s) to the subscribers',
)
**これは、ニュースレターを送信するための管理者のタスクを使用してセロリタスクを使用します.このチュートリアルのソースコード:https://github.com/saadmk11/test-django-newsfeed
デモビデオ
その他
あなたはGithubで
django-newsletter
のすべての設定についての詳細を学ぶことができます.ここからパッケージをチェックアウトします
ジャンゴニュースフィード まとめ
あなたがこのパッケージを使用するならば
またはコメントセクションで.
何か提案があれば、このパッケージに貢献したい
を作成してください
そして、issueを読みます.
フィードバックと貢献は常に歓迎です.
Reference
この問題について(ニュースキュレーターとニュース購読アプリケーションを作成する), 我々は、より多くの情報をここで見つけました https://dev.to/saadmk11/create-a-news-curator-and-news-subscription-app-using-django-1ghjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol