python美多商城项目笔记

1.url参数获取

url(r'username/(?P<username>[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 = '<p>尊敬的用户你好!</p>'\
                '<p>欢迎你使用超超二手</p>'\
                '<p>你的邮箱为:%s.请点击此连接激活你的邮箱地址:</p>'\
                '<p><a href="%s">%s<a></p>' %(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 %}
	<div class="login_btn fl">
    欢迎您:<em>{{ user.username }}</em>
    <span>|</span>
    <a href="#">退出</a>
     </div>
{% else %}
    <div class="login_btn fl">
    <a href="login.html">登录</a>
	<span>|</span>
	<a href="register.html">注册</a>
	</div>
{% 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;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抬头看天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值