python美多商城项目笔记

1.url参数获取

url(r'username/(?P[a-zA-Z0-9_-]{5,20})/count/$',view.UsernameCountView.as_View())

2.查询数据库的两种方法

get()返回的对象
filter()返回的查询集

3.通过使用axios发送ajxs请求

1. axios.get('url','请求头')
.then()成功回调
.catch()失败回调
.then(function(response){
    
})
.then(response=>{
     
})

2. v-bind 绑定标签属性简写:
3. 页面加载完调用 mounted(){}

4.单例的创建流程

class CCP(object):
    def __new__(cls,*args,**kwargs):
        #判断是否有单例存在,_instance属性中存储的就是单例
        if not hasattr(cls,'_instance'):
            cls._instance = super(CCP,cls).__new__(cls,*args,**kwargs)
        return cls._instance

5.大写字母转成小写,随机生成六位数

.lower() 将大写字母转化为小写
sms_code = '%06d'%random.randint(0,999999)

6.创建定时器

setInterval('回调函数','时间间隔')
#初始化定时器
let num = 60;
let t =setInsterval(response=>(){
    num-=1;
    this.sms_message=num+'秒';
    if(num==0){   
        this.sms_message='获取验证码';
        clearInterval(t);
    }},1000)

7.创建redies管道pipeline

1.创建redies管道 
pl= redies_con.pipline()
2.使用管道添加redies命令到队列
pl.setex(usename,10,'liming')
3. 发送数据
pl.execute()

8.celery异步使用

1.创建celery_tasks包用来储存celery
2.创建config.py文件,用来贮存配置文件
```python
broker_url='redis://127.0.0.1:6379/10'
```
3.创建main.py方法用来储存主要逻辑
```python
from celery import Celery
#创建celery实例
celery_app = Celery('ershou')

#加载配置

celery_app.config_from_object('celery_tasks.config')

#注册任务

celery_app.autodiscover_tasks(["celery_tasks.sms"])
```
4.创建发送短信的包sms
5.在短信的包sms中创建tasks.py文件
```python
from celery_tasks.sms.yuntongxun.ccp_sms import CCP
from celery_tasks.main import celery_app


@celery_app.task(name='sent_sms_code')
def sent_sms_code(moble,sms_code):

    ret =CCP().send_template_sms(moble, [sms_code, 5], 1)
    return ret
```
5.启动程序celer
celery -A celery_tasks.main worker  -l info -P eventlet -c 100
#-c开100个携程
win10不支持celery4,因此需要安装eventlet包。
6.在django代码中导入tasks的sent_sms_code方法
sent_sms_code.delay(moble,sms_code)
7. @celery_app.task(name='sent_sms_code')参数的设置
    name:异步任务别名
    bind:保证task对象会作为第一个参数自动传入
    retry_backoff:异常自动重试的时间间隔,第n次retry_backoff*2(n-1)s
    max_retries:异常自动重试的次数上线
@celery_app.task(bind=True,name='send_verify_email',retry_backoff=3)
def send_verify_email(self,to_mail,verify_url):
    '''定义发邮件的任务'''
    subject = '美多商城邮箱验证'
html_message = '

尊敬的用户你好!

'\ '

欢迎你使用超超二手

'\ '

你的邮箱为:%s.请点击此连接激活你的邮箱地址:

'\ '

%s

' %(to_mail,verify_url,verify_url) try: send_mail(subject,'', settings.EMAIL_FROM,[to_mail],html_message=html_message) except Exception as e: raise self.retry(exc=e,max_retries=3)

9.判断用户是否登录显示用户名

1.使用jinja2模板封装的用户方法判断
```python
{% if user.is_authenticated %}
	
{% else %}
    
{% endif %}
```
2.发送axjs请求获取
3.利用缓存保存到cookie中,vue读取cookie渲染用户信息

10.设置cookie

1.django中
response = redirect(reverse('contents:index'))
response.set_cookie('username', user.username, max_age=120)
return response
2.js中设置cookie
// 获取cookie
function getCookie(name) {
    let r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

你可能感兴趣的:(笔记分享篇,python)