Django的微服务

bgtasks的Python项目详细描述


教程

安装

pip install bgtasks

配置

设置.py
AMQP={'USERNAME':'guest','PASSWORD':'guest','VHOST':'/','HOST':'localhost','PORT':5672,'RPC_SLEEP_TIME':0.005}

rpc方法

app1视图.py
importjsonfromdjango.httpimportHttpResponsefrombgtasksimportRPCClientdefadd_user(request):data={'username':request.POST.get('username'),'password':request.POST.get('password')}client=RPCClient()# Create user and get iddata=client.call('user.add',data)content=json.dumps({"success":true,"user_id":data})returnHttpResponse(content)
app2 tasks.py
fromdjango.contrib.authimportUserfrombgtasksimportrpc_tasks@rpc_tasks('user.add')defadd_user(data):user=User.objects.create(username=data['username'])user.set_password(data['password'])returnuser.id

用于列出rabbitmq

python manange.py tasks

作业方法

app1视图.py
fromdjango.httpimportHttpResponsefrombgtasksimportJobClientdefsend_email(request):data={'email':request.POST.get('email')}client=JobClient()data=client.call('user.send_mail',data)content=json.dumps({"success":true})returnHttpResponse(content)
app2 tasks.py
fromdjango.contrib.authimportUserfromdjango.core.mailimportsend_mailfrombgtasksimportjob_tasks@job_tasks('user.send_mail')defsend_mail(data):send_mail('Hi!','Hello World.','from@example.com',[data['email']],fail_silently=False,)

测试

在settings.py中添加environment='测试'

importjsonfromdjango.testimportTestCasefromdjango.testimportClientfrombgtasksimportrpc_tasks@rpc_tasks('user.add')defadd_user(data):return1classRPCTestCase(TestCase):deftest_add_user(self):data={'username':'john','password':'smith'}c=Client()response=c.post('/user/add/',data)data=json.loads(response.content)self.assertEqual(response.status_code,200)self.assertEqual(data['user_id'],1)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Javaservlet,使用Quartz发送邮件   用Java编写XYRectangle类   java Docker/AWS ECS容器支持的服务(端点)数量   音频Java读取WAV文件作为浮点数组   java为什么是日历。九月不起作用了?   java连接到HTTPS url并发布到它   java线程动画示例不起作用   java查找HashMap是否包含所选值和返回键   java与后端API的交互   JavaFX启动时在JavaFX中执行应用程序启动异常   每T秒从Java运行一次MATLAB   java@Array(长度=?)怎么样OpenHFT中的注释/使用的值   java无法从InputStream读取多个可外部化的对象   java My RestController不返回对象的所有属性   java使Android XML阅读器只读取XML文件的一部分   java注释会影响编译时吗?   从Java到C#的迭代器方法与接口的等效性,然后在类上实现?   swing为什么Java中的侦听器相互依赖?