[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/We2one/Notes/master/python-basic-notes/python-days/Day_44.md [Back]  [Original]

### Django

#### Django 

##### 

+ Smtp : , 

+ Smtp 

  + SSL : smtp.163.com: 465
  +  SSL : smtp.163.com: 25

+ 

  ```python
  import smtplib  # smtp 
  from email.mime.text import MIMENText # 
  
  # 
  
  subject = ""
  content = ""
  sender = ""
  recver = ""
  password = ""
  message = MIMEText(content, "html", "utf-8")
  
  message["Subject"] = subject  # 
  message["From"] = sender  # 
  message["To"] = recver  # 
  
  # ,  smtp 
  smtp = smtplib.SMTP_SSL("smtp.163.com", 994)
  # 
  smtp.login(sender, password)
  smtp.sendmail(sender, [recver], message.as_string())
  smtp.close()
  ```


##### 

1. ,  [](https://www.yuntongxun.com)

2. [](http://doc.yuntongxun.com/p/5a533de33b8496dd00dce07c)

3. 
   + Demo 

     ```python
     coding=utf-8gbk
     from CCPRestSDK import REST
     import ConfigParser
      
     accountSid= ''; 
     #ACCOUNT SID
      
     accountToken= 'Token'; 
     #TokenAUTH TOKEN
      
     appId='ID'; 
     #APPID
      
     serverIP='app.cloopen.com';
     #app.cloopen.com
      
     serverPort='8883'; 
     # 8883.
      
     softVersion='2013-12-26'; #REST API 
      
     def sendTemplateSMS(to,datas,tempId): 
        #REST SDK
     	rest = REST(serverIP,serverPort,softVersion) 
         rest.setAccount(accountSid,accountToken) 
        	rest.setAppId(appId)
      	result = rest.sendTemplateSMS(to,datas,tempId) 
         for k,v in result.iteritems():
             if k=='templateSMS' : 
             	for k,s in v.iteritems():
                 	print '%s:%s' % (k, s) 
             else: 
                 print '%s:%s' % (k, v) 
     ```

4. Python SDK : `pip install ronglian_sms_sdk`

   ```python
   from ronglian_sms_sdk import SmsSDK
    
   accId = 'ID'
   accToken = 'TOKEN'
   appId = 'ID'
    
   def send_message():
       sdk = SmsSDK(accId, accToken, appId)
       tid = 'ID'
       mobile = '1,2'
       datas = ('1', '2')
       resp = sdk.sendMessage(tid, mobile, datas)
       print(resp)
   ```


#####  Django 

1. 

   1.  (`settings.py` )

      ```python
      # 
      # 
      EMAIL_HOST_USER = 'xxx' # 
      EMAIL_HOST_PASSWORD = 'xxxx' # 
      EMAIL_USE_SSL = True # SSL 
      EMAIL_HOST = 'smtp.163.com' # 
      EMAIL_PORT = 994 # 
      ```


   2.  ()

      ```python
      def email_test(request):
      	email = EmailMultiAlternatives(subject='',
      	                               body='',
      	                               from_email='163',
      	                               to=[''],
      	                               )
      	email.send()
      	return HttpResponse('')
      ```


   3. 
2. 

   1. 
      1.  ajax get 
      2. 
      3. 
   2. 
   3. 
   4. ,
      1. ,
      2. 
         1. 
         2. 

#####  Celery

1. Celery 

   + Celery  : Python 
     +  : ,,,,
   +  : 
     +  : ,,
   + Celery  (,)
     1. , worker 
     2. ,
     3.  store 
     4. 
        1. user : 
        2. broker : 
        3. workers : ,
        4. store : 
   + Celery ****  ****
     + Redis, NoSQL : Redis ,,Redis ,
     + RabbitMQ  :   

2. Celery 

   1.  Redis   Python  Celery  redis 

      ```python
      pip install django-celery==3.2.2
      pip install django-redis
      pip install redis==2.10.6
      ```

   2.  Redis

      1.  Redis 
      2. , `redis-server.exe redis.windows.conf` 
      3.  Redis , `redis-cli.exe`  `shutdown` 

3. Celery 

   1.  `settings.py`,  djcelery App

      ```python
      INSTALLED_APPS = [
          ...
          'Buyer',
          'Seller',
          'djcelery',
      ]
      ```

   2. (app) CeleryTask,  `tasks.py`   `python manage.py startapp CeleryTask`

   3. `settings.py` 

      ```python
      import djcelery
      djcelery.setup_loader()  # 
      BROKER_URL = 'redis://127.0.0.1:6379/1'  #  broken ,  redis 
      CELERY_IMPORTS = ('CeleryTask.tasks')  # 
      ## 
      CELERY_TIMEZONE = 'Asia/Shanghai'
      # celery , 
      CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
      ```

   4.  ()  `celery.py`  ()

      ```python
      import os
      from celery import Celery
      from django.conf import settings
      
      #  celery  Django-celery 
      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Cmdb.settings')
      
      #  celery , celery 
      app = Celery('art_project')
      
      #  celery 
      app.config_from_object('django.conf:settings')
      
      # , task.py , celery  app  task.py 
      app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
      ```

   5. `tasks.py`  (celery  : , `@app.task` )

      ```python
      from __future__ import absolute_import
      from Qshop.celery import app
      
      @app.task
      def Test():
      	import time
      	time.sleep(20)
      	print('')
      ```

   6.  celery

      1.   `python manage.py migrate`
      2.  celery : `python manage.py celery worker --loglevel=INFO`
      3.  `from kombu.async.timer import Entry ...` (Python3  async ,)
         1.  kombu  async  `asynchronous`
         2. ,  async  asynchronous
      4.  worler

   7.  `tasks.py` 

      ```python
      from CeleryTask.tasks import Test
      
      def index(request):
      	Test.delay()
      ```

   8. 

      ```python
      from CeleryTask import test.myprint
      
      @LoginValid
      def index(request):
          myprint.delay(10)
          return render(request, 'store/index.html')
      ```

4. Celery 

   1. `settings.py` 

      ```python
      from celery.schedules import timedelta, crontab
      
      CELERYBEAT_SCHEDULE = {
          u"": {
              "task": "CeleryTask.tasks.Test",  # 
              "schedule": timedelta(seconds=2),  # 
          }
      }
      ```

   2.  worker : `python manage.py celery worker --loglevel=INFO`

   3.  : `python manage.py celerybeat --loglevel=INFO` 

   

Web Proxy Viewer  |  New URL  |  Original Page